皆さんは、VBAにて、プログラムを実装する際、開発経験のない内容だった場合、どのようにされていますか? 以下のような場合が多いのではないでしょうか。
ここでは、ちょっと知っておくと、とっても便利な方法を紹介したいと思います。それは、エクセルの【マクロの記録】機能を利用するやり方で、エクセルで出来る操作を記録し、自動で出力されたプログラミング・コードを参考にするというものです。エクセルで出来ることであれば、まったく経験のない、プログラムでも、何も調べずに(お金も時間も無駄にかけず)、手軽に作成できてしまいます。
是非ものにして、今後のエクセル作業に活かしてください。
エクセルブック外部に存在する画像ファイルを、エクセルシート内に貼り付けるプログラムを実装してください。
エクセルのマクロの記録を開始します。リボンの【開発】を選択して、【マクロの記録】をクリックします。画面が表示されますが、ここでは特に何も変更せず【OK】ボタンを押してください。
※【OK】ボタンを押してから、【記録終了】されるまでのエクセル操作が、プログラミング・コードとして出力されます。
エクセルブックに画像を挿入します。リボンの【挿入】-【図】-【画像】をクリックします。
挿入する画像ファイルを選択します。該当ファイルを選択後、【挿入】ボタンを押下します。例としてデスクトップの葡萄の画像ファイル(mame01.jpg)を挿入します。
画像が挿入されているのが、一目で分かります。それでは、画像が挿入されたので、マクロの記録を終了します。以下の図の【記録終了】の箇所をクリックします。
リボンの【開発】から【コードの表示】を選択すると、Module1に以下のようなコードが出力されています。これは、現在表示されているアクティブなシートに、mame01.jpgという画像ファイルを挿入するという内容のプログラムとなっています。
※既にマクロを記録していると、Module1は、Module2やModule3となっている可能性があります。
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveSheet.Pictures.Insert("C:\Users\morikawa\Desktop\mame01.jpg").Select
End Sub
画像に関するプログロムなんて、書いたことの無い人でも、このように簡単に、プログラムを作成することができました。試しに、このマクロを実行してみてください。
上記で、画像挿入のプログラムが出来た訳ですが、これでは少し使い勝手が悪いので、もう少し、色々な場面で利用できる、汎用さを持たせた、実装に変更してみたいと思います。
'ファイル名を指定して、画像を挿入します。
Public Sub ImageInsert(ByVal fname As String)
'画像の挿入
ActiveSheet.Pictures.Insert fname
End Sub
最初の実装では、決まったファイル名の画像しか挿入できません、これでは少し不便なので、ファイル名を指定して、アクティブなシートに挿入できるようにしたものが、ImageInsert関数です。
今度は、挿入するシート名も指定できるように変更してみましょう。
'ファイル名とシート名を指定して、画像を挿入します。
Public Sub ImageInsert2(ByVal fname As String, ByVal sht_out_name As String)
'画像の挿入
ThisWorkbook.Worksheets(sht_out_name).Pictures.Insert fname
End Sub
これで、シート名も指定できるようになりました。それが、ImageInsert2関数です。どうでしょうか、非常に汎用的な関数になりましたね。このように、【マクロの記録】を利用すると、非常に簡単にプログラムが実装でき、開発効率がグンと上がります。
> 第2回
何でもかんでも、自分で作ろうとせず、Excelで出来ることは、エクセルにやらしてみるということです。出力されたコードを参考にして、手直しするというやり方が、お勧めです。この方法に慣れると、非常に効率的に開発が進むことでしょう。
以下から、今回の豆知識で紹介した内容のエクセルファイルがダウンロードできます。
サンプルのダウンロード
ご意見・ご要望等ありましたら、画面最下部のメールアドレスまでご連絡ください。