0Excelを使った事務作業。VBAを使うと面倒な業務が一瞬でできてしまって便利ですよね。そこで、私が会社の業務で作成したVBAのコードの中でも、さまざまな局面に応用可能で汎用性が高いであろうコードを集めてみました。コードの細かい意味はよくわからないけれども、とにかく早く動くモノを作りたい・・・!!そんなあなたに最適のコード集です。これらを組み合わせるだけで、あなたが作ろうとする機能はほとんどできあがってしまうかもしれません。説明および更新履歴のコメントプログラムは一度作って終わりではなく、運用に変更があれば都度メンテナンスが必要になります。そのため、プログラムの説明および、バージョンが分かるように更新履歴を書き加えておきましょう。変数宣言強制の決まり文句モジュールの先頭で宣言します。そのモジュール内のすべての変数の明示的な宣言を強制します。Explicit変数名の入力ミス由来のバグ発生対策になります。これを書いておくのが無難です。変数は以下のように宣言します。~」の部分の変数の型の指定は省略可能です。具体的には以下のようになります。Integer変数の型は以下の通りです。Falseプロシージャの最初と最後に入れたい文言プログラムを呼び出す単位をプロシージャと呼び、以下の構文で記述します。Subプログラムをスムーズに動作させるため、以下の文言を最初と最後に入れておくことを推奨します。プログラム実行中に画面の描画をなくすことで高速に動作させ、実行中に余計なメッセージが表示されないようになります。If上記例では、”C:\Users\Public\Documents\xxx.xlsx”という名前のファイルがある場合にはそれを開き、無ければエラーメッセージを返す仕組みになっています。ディレクトリ(階層)および、”xxx.xlsx”はもちろん好きな名前に変更していただけます。補足となりますが、5行目のvbCrLfはメッセージ中の改行を表します。If上記例では、VBAを記述しているExcelブックと同じディレクトリ(階層)内に”xxx.xlsx”という名前のファイルがある場合にはそれを開き、無ければエラーメッセージを返す仕組みになっています。“xxx.xlsx”はもちろん好きな名前に変更していただけます。Host”オブジェクトを使用することで、デスクトップフォルダやマイドキュメントなどの特殊フォルダのパスを取得できます。以下はデスクトップのパスを取得し、デスクトップ内の”xxx.xlsx”という名前のファイルを開くソースです。Ifさらに、デスクトップ以外にもさまざまな種類の特殊フォルダを指定できます。上記例1行目で”Desktop”となっている””の中身を、以下の表の中の特殊フォルダ名に変更することで、さまざまなパスを取得可能です。スタートアップフォルダさらに、”FileSystemObject”を使用してWindowsフォルダやSystem32フォルダ、テンポラリフォルダのパスも取得可能です。以下はWindowsフォルダのパスを取得し、Windowsフォルダ内の”xxx.xlsx”という名前のファイルを開くソースです。If上記例1行目でGetSpecialFolder()となっている()の中身を、以下の表の中の数値に変更することで、さまざまなパスを取得可能です。指定したセル範囲の指定まずは単一のセルを指定してみましょう。書き方は非常に多くありますが、以下はすべてセル番地B1を選択するコードです。2)).Select一言にセル番地B2を指定といっても、非常に多くの書き方があります。いっても、実際によく使うのはハイライトされた2,4行目の表記でしょう。続いては、複数セルの指定です。Range("A1:A3","C1").Select単一セルの場合以上に多種多様な選択方法がありますが、実際によく使うのはハイライトされた2,4,10行目の表記でしょう。12行目の書き方はぱっと見理解不能ですが、要するに『Range(Cell1,Cell2)』と書いた時、Cell1とCell2をすべてピッタリと収納する長方形の範囲を選択するということです。文章だと分かりにくいですが、下記の画像をご確認ください。指定した行範囲の指定まずは行からです。サンプルを以下に示します。10:10").Select変数iおよびjを用いて、i行目からj行目までの行すべてを選択するコードは以下になります。Sheet1.Columns("C:E").Selectしかしながら、Columnsプロパティで列番号を用いて、複数列を指定する事は出来ません。WithMaxRow=最終行MaxCol=最終列として取得可能です。MaxCol)は好きな名前に変えていただいて構いません。どちらか片方だけでよい場合は、Withステートメントを使用せず、下記のようなコードでOKです。xlPrevious).Columnこのコードは途中で空白行・列があっても問題なく動作し、Excelのバージョンを問わず、書式のみ付いているセル(例えば、背景色がついているセル)は除外して判断する優れたコードです。以下のサイトでその詳細が記載されておりますので、詳しく知りたい方はご覧ください。取得するコードを紹介しましたので、それを使った応用コードを以下に記載します。下記は、全データレコードのうち、B列(2行目以降)がブランクである行をすべて削除するコードになります。実際のVBAプログラミングでも不要行削除はよくあるケースですので、参考にしてください。"<>|)が含まれています。"にファイル名が入力されていません。見つかりませんでした。コメントをキャンセルメールアドレスが公開されることはありません。