Excel VBAでプログラミング その2

●Excel VBAでプログラミング その2

●住所録登録
住所録を作成するためには、まず住所録を登録する住所録シートを作成します。住所録シートの先頭には、取引先名・郵便番号・県名・所在地・ビル名等の項目を作成するとします。
Excelではセルに属性があるため電話番号のように数字を扱う項目は、数値として扱われてしまう事があるためシート全体の属性を文字列に変更しておきます。

次にコードを埋め込むのですがデータフォームによるデータ編集を行うためにはどうすればいいかということをExcel自体を使って調べてみます。
その前に準備としてクイックアクセスツールバーにデータフォームを表示します。
具体的な方法はこのリンクからオフィスのホームページで知ることができます。

次に「マクロ記録」ボタンを押して表示されたダイアログの「OK」ボタンを押します。
その後、先ほど表示したデータフォームボタンを押してデータフォームが表示されたら「閉じる」ボタンを押して表示を終了し、「記録終了」ボタンを押してマクロの記録を終了します。



見出ししかない場合以下のような警告が出ます。

この後、開発リボンの中のVisual Basicとかかれたボタンを押して標準モジュールのMacro1をダブルクリックして開きます。
するとActiveSheet.ShowDataFormと記録されています。これは現在表示されているシートでデータフォームを起動するという意味になります。

ActiveSheetでは住所録用の記録シートが表示されていない状態では、エラーや誤動作を起こします。
というのもActiveSheet自体は選択されて表示されているシートなのでもしもこのマクロ実行時に品目データ登録用のシートが表示されていれば、誤動作することになります。
なので、Sheet1.ShowDataFormというふうに住所録用シートのオブジェクト名を指定した上でShowDataFromを呼び出します。オブジェクト名は、エクセルのタブで表示されているシート名とは異なるものであることに注意してください。このコードをSUBプロシージャタイプのマクロで登録します。

また、品目データ登録用シートがSheet2というオブジェクト名であるとするとSheet2.ShowDataFormというコードをSUBプロシージャタイプのコードで登録しておけばシートが表示されていなくても正常に品目データが編集できます。

これをMainModuleという名前の標準モジュールに登録するとすると

こんな感じになります。

エクセルで開発リボンの表示とVBエディタの起動

PREV トップページ NEXT