関数リファレンス

関数リファレンス

F0000045_指定のフォルダ内に存在するファイル名一覧をワイルドカードを指定して抽出する

ExcelVBA(マクロ)でフォルダやファイルの存在を確認するためには「Dir」という非常に便利な備え付けの関数があります。しかしこの関数を使用しないという人は多いです。前回の記事(指定のフォルダ内に存在するフォルダ名一覧をワイルドカードを指定して抽出する)でも解説したようにDir関数には落とし穴があるためです。このページで紹介する関数はDir関数を使用せずにフォルダ内にあるファイル名一覧を取得することができます。
関数リファレンス

F0000044_指定のフォルダ内に存在するフォルダ名一覧をワイルドカードを指定して抽出する

ExcelVBA(マクロ)でフォルダやファイルの存在を確認するためには「Dir」という非常に便利な備え付けの関数があります。しかしこの関数には非常に重大な落とし穴があります。Dir関数はマクロの動作中にプロシージャが変わっても状態を保持し続けます。要は、呼び出し元でDir関数を使用した後、呼び出し先でもDir関数を使用すると呼び出し元のDir関数の状態を上書きしてしまいます。この特性を理解していればDir関数は非常に高速で強力な関数ですが、理解せずに使うと事故の元です。ここで紹介する関数はDir関数を使わずに、フォルダ内にあるフォルダの一覧を取得することができます。
関数リファレンス

F0000043_Windowsでファイル名に使えない文字列を全角文字に置換する

ExcelVBA(マクロ)で業務を自動化するとき、マクロの実行結果でファイルを保存するということが少なからずあると思います。ファイルは命名規則を決めて整然と表示させたいところですが、ユーザーからの入力内容に応じてファイル名を設定する場合、注意が必要です。ExcelVBA(マクロ)では、ファイル名に使用できるか否かの判定をしないので、ユーザーが意図しない入力をした場合、実行時にエラーになります。この関数ではWindowsでファイル名に使用できない文字を半角→全角に変換して返します。
関数リファレンス

F0000042_ワークシートを静かに削除する

Excelのシートを削除しようとすると必ず警告が表示されます。これはExcelVBA(マクロ)でシートを削除しようとしても同じことが起きます。しかしマクロの動作中にこのような警告を出されるとマクロの動きが止まってしまい、せっかく自動化した作業をユーザーに監視させる必要がでてきてしまいます。こんなときExcelVBA(マクロ)ではExcelの警告を無効化する手段が用意されています。「Application.DisplayAlerts = False」と記述することでこの警告は回避可能です。しかし「警告を無効にする→有効にする」の記述に削除する行+2行コードが長くなることも、マクロの実行を通じて常に警告を無効にしておくことも、私は好みません。この関数は指定したワークシートを静かに(警告を表示させず)削除します。
関数リファレンス

F0000041_絶対パスからファイル名を抽出する

ExcelVBA(マクロ)ファイルに対する操作を加える場合、FileSystemObjectを使用するのが一般的です。しかし、FileSystemObjectは参照設定で使用する場合「Microsoft Scripting Runtime」、CreateObjectで使用する場合「"Scripting.FileSystemObject"」を指定するなど名前から想像する直感ではたどり着けない名称の指定が必要です(少なくとも私には)。よほど頻繁に使用していない限り、FileSystemObjectを使いたいと思うごとにネットで使用方法の検索が必要になります。そのためFileSystemObjectを使って実現できる機能を関数化しています。この関数は絶対パスの中からファイル名を抽出して返します。
関数リファレンス

F0000040_ファイル名から拡張子を取り除く

ExcelVBA(マクロ)でファイルをユーザーに選択させてそのファイル名を表示するとき、拡張子を取り除きたいということはないでしょうか?ファイル名が命名規則に従っているか確認する場合には先に拡張子を取り除いた方が楽かもしれません。この関数は指定したファイル名から拡張子を取り除いて返します。
関数リファレンス

F0000039_ファイルダイアログを開き、1つのフォルダを選択させる

ExcelVBA(マクロ)の出力先に特定のフォルダを使用したり、逆に入力用データを特定のフォルダにまとめていたりすることが実務ではよくあります。フォルダの場所が可変であったり、命名規則が定められていない場合は、ユーザーにフォルダを選択させることが正解であることもあります。この関数はファイルダイアログを立ち上げ、フォルダを選択させます。
関数リファレンス

F0000038_ショートカットファイルを生成する

エクスプローラーに共有フォルダのパスを貼り付けてそこにおいてあるファイルをデスクトップに保存して編集してください・・・という指示を出すと、エクスプローラーとはなんですか?パスはどこに貼り付ければいいですか?と、聞き返されたことはないでしょうか?そのために目的のフォルダまで移動するマニュアルをスクショ付きで作成したことは?おそらくこのサイトの閲覧者にとっては他人事ではない出来事かと思います。私がこの問題に対して用意した答えは、フォルダへのショートカットを作成するツールを配布し、デスクトップに作成されたショートカットから目的のフォルダを開いてくださいという指示をすることです。マニュアルが不要になり、共有フォルダへアクセスできないという問い合わせは99%削減されました。この関数は、任意の場所に任意ファイルやフォルダへのショートカットファイルを作成することができます。
関数リファレンス

F0000037_Base64でエンコードされた画像をデコードして保存する

Base64(外部リンク)とは何かという話は、別サイトで確認してください。Base64はデータを64文字(実際には「=」と「改行文字」を加える場合もある)の組み合わせで表現することができます。そのため画像が添付できない環境であっても、Base64で変換すれば画像データのやりとりをすることができる・・そうです。私の場合、WebDriverでスクリーンショットを取得するとBase64形式のデータで返されたため、焦り、作成しました。この関数は、Base64にエンコードされた画像データをデコードすることができます。
関数リファレンス

F0000036_ASCII文字列をバイナリ配列にして返す

この関数を作った当初の目的であるツールは開発に至らなかったため、この関数を開発に使用したことはまだありません。ASCII文字列(外部リンク)についは外部サイトを参考にしてください。また、この関数の使いどころについて、ご意見ある方はぜひコメントにて教えてください。
スポンサーリンク