エクセルVBAでプログラミングする際のポイントなどを解説していきたいと思います。
なぜエクセル?
私がエクセルに初めて触れたのはエクセル95でした。
当時、あるプロジェクトの責任者として進捗管理などにエクセルを利用していたのですが、簡単なVBAを使ってツールも作っていました。
今でもエクセル95で作ったVBAって最新のエクセルでも動作するんですよ。
20年前のプログラムが、ほとんど変更せずに今のプラットフォームでも動作する。・・これってすごいと思いませんか??
ということで、エクセルでプログラミングする際のポイントをメモっておこうと思います。
まずは開発タブを表示します。
エクセルの初期状態では、マクロやVBAを使うための[開発]タブが表示されません。
メニュー[ファイル]-[オプション]で表示された画面の左メニューから[リボンのユーザー設定]を選び右側のチェックボックスの「開発」にチェックを入れ「OK」ボタンをクリックします。
これで、[開発]タブが表示されマクロやVBAが使えるようになります。
テキスト貼り付けをマクロ登録する
エクセルの貼り付けで、普通に「Ctrl+v」等で貼り付けると書式などもコピーされますよね。
右クリックなどで貼り付けオプションの「値貼り付け」を選択すればいいのですが、ショートカットでも実現したいと思います。「Shift+Ctrl+v」で値貼り付けできるようマクロで実現します。
- マクロの登録で、テキスト貼り付けを登録する。
適当なセルをコピー「Ctrl+c」して別のセルを選択する。
開発タブの「マクロの記録」をクリックして、マクロの記録ダイアログでマクロ名をつけてOKする。
マクロの保存先は「個人用マクロブック」にする。
ホームタブの貼り付けの▼をクリックし「値貼り付け」をクリックする。
開発タブの「記録終了」をクリックする。 - 出来たマクロを確認する。
開発タブの「VisualBasic」をクリックし、エディター画面(VBE)を表示する。
VBAProject(PERSONAL.XLSB)の標準モジュール内のModule1をクリックすると記録されたコードが確認できます。 - ショートカットキーに登録
エディター画面(VBE)を閉じます。
開発タブのマクロをクリックし、マクロダイアログでオプションをクリックします。
ショートカットキーの中で[Shift+v]を入力し、OKボタンをクリックし、マクロダイアログのキャンセルをクリックします。
これで、Shift+Ctrl+v に値貼り付けが登録されました。 - エラー無視の処理を記述する。
このままでは、コピー処理(Ctrl+c)を行わずShift+Ctrl+vするとエラーになります。
エラー時は無視する命令を追加します。
再度2.のエディター画面(VBE)を表示します。
先ほど確認したマクロを表示し、最初の行に「On Error Resume Next」を追記します。
以上です。
エクセルを終了するときに、個人用マクロブックの保存について確認されますので、保存することを忘れないようにしてください。
個人用マクロブック(PERSONAL.XLSB)に登録することで、別のブックでもマクロが実行できます。
開いているブックだけでマクロを実行したい場合は、マクロ登録ダイアログでマクロの登録先を「作業中のブック」にします。