サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
vbabeginner.net
64bit対応が必要な条件 Excel 2007までは32bit版のみでしたが、Excel2010から32bit版と64bit版の2つになりました。Excel2010当時は32bit版のインストールが推奨されていましたが、2020年現在主流のOffice 365では64bit版が一般的になっています。 ただ、違うPCや違うバージョンのExcelを使うとしても、過去に作成したブックを新しいバージョンでもそのまま使うことは普通にあります。そのような場合に、32bit版のExcelでWin32APIを使っているVBAのコードやブックを64bit版のExcelでそのまま使用しようとすると以下のようなエラーメッセージが表示されます。 「このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。Declareステートメントの確認および更新を行い、次にDeclareステートメ
標準モジュールなどの一括インポート このページでは標準モジュールの一括インポートについて紹介しています。 エクスポートについては「標準モジュール等の一括エクスポート」をご参照ください。 作成したマクロを他のブックでも使う方法 VBAを利用していると標準モジュールやフォームやクラスを作成していくことになりますが、作成したマクロを他のブックでも使いたいことがあります。 汎用的に使うのであれば個人用マクロブック(personal.xlsb)に書くことも一つの方法ですが、そこまでではない、という場合もあります。 そういう場合はVBA画面を開き、コピー元のブックから標準モジュール等をエクスポートして、利用するブックでインポートすることでマクロの転用が可能です。 インポートは1度に1ファイルしか出来ない マクロを転用する際に面倒なことがあります。それはエクスポートとインポートがそれぞれ1ファイルずつし
WshNetworkクラスでネットワークドライブの制御を行う プログラムの処理中だけネットワークドライブの接続を行い、処理が終わったら切断する、という設計を行うことがあります。 その際にどうやって実装したらよいかという話になりますが、候補として上がるのはWindows APIとnet useコマンドとWshNetworkです。 それぞれ一長一短ありますが、VBAでのネットワークドライブの制御はWshNetworkクラスを使うのが結果的に一番ラクだと思います。 参照設定 WshNetworkはCreateObject関数を利用してこのような書き方を紹介されることが多いと思います。
VBA関係ありません このページではVBAは出てきません。WindowsのThumbs.dbを確実に消す方法を紹介しています。 頭にくるThumbs.dbが消せない問題 Thumbs.dbを消そうとしたら出てくるこのメッ […]
値が無い場合の表現 VBAでは値が入っていないときの表現がいくつもあります。 Empty Nothing Null “” vbNullString これらの違いを説明します。 Emptyは、主に2つの場合で発生します。 1つは空白セルの値。もう1つはVariant型の変数の初期値になります。 VBAでは変数の定義時に型を指定せず暗黙の型変換とした場合はVariant型(なんでも型)になるためEmptyになります。セルや変数の値がEmptyかどうかを判定するにはIsEmpty関数を使いますが、””と比較してもちゃんと動作します。 以下のような感じで使います。
セルのコピペをマクロの記録機能で保存するとCutCopyModeが記録される セルをコピペする操作をマクロの記録で保存すると以下のようなコードが記録されます。 大体の内容はコードからSelectやCopyやPasteといったメソッドで、コピペしてるな、とわかるのですが、Application.CutCopyModeは何なんでしょうか。 Sub Macro1() ' ' Macro1 Macro ' ' ActiveCell.FormulaR1C1 = "aa" Range("A1").Select Selection.Copy Range("B2").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.Copy Range("C3").Select Selection.PasteSpecial Paste:=
他の変換は以下のリンクを参照 このページではUTF-8のファイルをShift-JISに変換する方法を紹介しています。 その他の変換は以下を参照ください。 VBAでShift-JISのファイルをBOM付きUTF-8に変換する VBAでShift-JISのファイルをBOM無しUTF-8に変換する VBAでUTF-8のファイルをShift-JISに変換する(当ページ) VBAでEUCのファイルをShift-JISに変換する VBAでShift-JISのファイルをEUCに変換する 文字コード変換にはActiveX Data Objectsを利用する VBAの標準機能では文字コードはUnicode(UTF16-LE)とASCIIの2種類が扱えます。 しかし実際に目にするファイルの文字コードはShift-JIS、UTF-8のBOM付き、UTF-8のBOM無し、EUCの4種類になってきます。 そして問題
セルの文章の一部の色や太さを変えるには シートの中で特定の文字列の色や太さを変更して強調表示したいことがあります。 これをExcelで実現するには、対象のセルを選んで、その中の特定の文字列を範囲選択して、フォントなどの設定を行う、という流れになります。 この方法はとても面倒です。1セルずつしか設定できませんし、特定の文字列を選択するのはかなり手間が掛かります。 そういう面倒を解消する以下のマクロは選択セル範囲の指定文字列の色や太さを変更するための汎用関数です。私自身、資料作成時にとても活用しています。 また、固定文字列ではなく、正規表現を利用する方法については「正規表現で一致するセルの文字に色を付ける」で紹介しています。例えば、CSVファイルのようにダブルクォーテーションに囲まれている文字列を全て抽出したい場合には「”(.*?)”」と正規表現で指定するとその部分が対象になります。 「”aa
条件付き書式をコピペするとルールが増えることは回避できない Excelの条件付き書式は自動で背景色を変えてくれたりする便利な機能ですが、対象セルをコピペすると条件付き書式のルールがどんどん増えて操作が重くなるという問題があります。 残念ながらこれを回避する方法はありません。 ちなみにこの事象についてMicrosoftは以下のページで「仕様だ」と言っています。 https://support.microsoft.com/ja-jp/help/2537195 解決方法は「条件付き書式のルールをクリアして再設定しろ」とあります。 おいおい。 条件付き書式の設定は本当に大変です。便利な機能ですがその設定は面倒です。それをやりなおせ、というのはいかがなものかと思います。 仕様だろうがなんだろうが問題があることに変わりはありません。 コピペで増えたルールをVBAで整理は可能 とは言ってもどうにか対応で
標準モジュールなどの一括エクスポート方法 このページでは標準モジュールの一括エクスポートについて紹介しています。 インポートについては「標準モジュール等の一括インポート」をご参照ください。 作成したマクロを他のブックでも使う方法 VBAを利用していると標準モジュールやフォームやクラスを作成していくことになりますが、作成したマクロを他のブックでも使いたいことがあります。汎用的に使うのであれば個人用マクロブック(personal.xlsb)に書くことも一つの方法ですが、そこまでではない、という場合もあります。 そういう場合はVBA画面を開き、コピー元のブックから標準モジュール等をエクスポートして、利用するブックでインポートすることでマクロの転用が可能です。 手作業ではエクスポートは1度に1ファイルしか出来ない VBAのコードを書いた標準モジュールなどの他のブックに転用する際にエクスポートやイン
このページを最初にブックマークしてみませんか?
『Excel作業をVBAで効率化』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く