アスパLab

関数リファレンス

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文字列(外部リンク)についは外部サイトを参考にしてください。また、この関数の使いどころについて、ご意見ある方はぜひコメントにて教えてください。
関数リファレンス

F0000035_マクロ実行者のGoogleChromeの実行ファイルパスを取得する

GoogleChrome(以下chrome)の実行ファイルの場所は、Windowsのバージョンやchromeのバージョンの組み合わせによって異なることがあります。この関数はマクロを実行するPC環境が異なってもchromeの実行ファイルのパスを取得できます。
アスパLab

F0000034_要素の範囲を指定して配列を切り抜く(トリミング)

ExcelVBA(マクロ)では2次元配列のレコード(行)にあたる1次元目の要素数を途中で変更(Redim)することができません。そのため処理の結果に応じて可変する配列の作成はマクロでプログラムを作成するときによくぶつかる問題です。いくつかある解決策のひとつは、仕様上その要素数を超えることがないくらい大きな配列を作っておいてデータの格納後、データが格納されているレコード数を数えて、新たに配列を作成しデータを移し替えてしまうことです。このページで紹介する関数は指定した範囲で配列を切り出し、切り出した配列を返します。
スポンサーリンク