アスパLab

関数リファレンス

F0000068_文字列から数値を取り除く

このページで紹介する関数は機能は非常にシンプルなもので表題の通り文字列から数値を取り除くだけです。必要になった時に毎度書くのが大変だろうと思い関数化しました。用途としては例えば当記事のID「F0000068」から数値を取り除き、カテゴリを表すアルファベットを取得する・・というようなことに使います。しかし、関数を作成した時の開発以外でこの関数が必要になったことは一度もありませ
関数リファレンス

F0000067_FileSystemObject(fso)を宣言を意識せず使用する

ExcelVBA(マクロ)でファイルやフォルダの操作をする場合、FilesystemObject(fso)を使用することが一般的です。wshと同様、参照設定や宣言方法を覚えておくことは人間にとっては大きなストレスです。この関数では、fsoの宣言を意識せずに使用することができます。
関数リファレンス

F0000066_ファイルを既定の方法で開く

突然ですが「.xdw」ファイルをご存じでしょうか?業務で使用している方にはなじみ深く、使っていない方の認知度がかなり低いファイル形式です。開くためには専用のソフトを必要とします。私は就職が決まった先の企業から何の説明もなく「.xdw」ファイルで会社説明の資料が届きました。「もしや、これは試されているのか?」と思い、ファイルが開けないんですが・・という問い合わせはせず、ネットで検索、開くことができましたが、今考えても担当者の送付間違いか説明不足かだと思います。ExcelVBAでこのような専用ソフトを開くにはテクニックが必要です。この関数ではPowershellの「Invoke-Item」コマンドで指定したファイルを既定の方法で開きます。
関数リファレンス

F0000065_WScript.Shell(wsh)を宣言を意識せずに使用する

ExcelVBA(マクロ)では高級なプログラミング言語と同様に、様々な機能を持った関数が事前に準備されています。なにも設定せずに使用できるものもあれば、ライブラリを参照して使用するものもあります。ライブラリの種類は非常に多く、それぞれの参照設定名や宣言方法を覚えておくことは人間にはストレスになります。この関数はwsh(WindowsScriptHostのシェルオブジェクト)を宣言や参照設定を意識せずに使用できます。
関数リファレンス

F0000064_フォルダをミラーリング(ミラーフォルダを作成)する

ExcelVBA(マクロ)ではWindowsの新しいコマンドプロンプト(?)であるPowershellを実行することができます。会社のセキュリティ設定によっては実行できないものはあるかもしれません。この関数では「robocopy」コマンドを使用してフォルダを指定した場所にミラーリングします。このコマンドの優秀な点は、同じ場所に同じフォルダをミラーリングする場合、フォルダの差分のみをミラーリングできることです。そのため巨大なフォルダをまるごとミラーリングしても2回目以降の実行は更新されたファイルの容量分だけになります。私は簡易なバックアップ手段として採用していました。
アスパLab

F0000063_文字列に含まれる指定の文字列で囲まれた文字列を抽出する

文字列を特定の記号で囲んで特別な意味を持たせる試みはよくあります。有名なものはHTML文書です。HTMLはタグを「<」「>」で囲み、意味を持たせます。このような手法が用いられるのは、特定の記号を使用することで自然言語と特別な意味を持つ文字列を区別することができるためです。プログラミングへも応用が可能で、例えば差し込み印刷ツールで文書内のタグを連続して置き換えて印刷するというような使い道もできます。この関数ではそのような特別に意味を持たせた文字列に囲まれた文字列を文字列内から抽出します。ただし、HTMLなどの解析用に作ったわけではないので、性能へ過度な期待はしないこと。
関数リファレンス

F0000062_64ビットOSかどうか調べる

この関数はレガシーな関数です。現在の環境では使用することはないものかと思います。ユーザーのPCが64ビットOSかどうかを判定して返します。ユーザーのPCが64ビットOSかどうかの判定は条件付きコンパイル「#IF」ステートメントの条件に「Win64」定数を指定すれば判定できます。あえてこの関数を使用する目的はないものと考えます。
関数リファレンス

F0000061_ランダムなカスタム文字列を生成する

この関数は指定した条件に応じたランダムな文字列を生成します。ランダムな文字列と言えばパスワードです。パスワード生成ツールはネットでも公開されているものの、毎度条件入力などが面倒だっため作成しました。当初パスワードの生成を目的としていましたが、ランダムな文字列は関数のテストデータなどにも使用することができます。
関数リファレンス

F0000060_範囲内のランダムな整数を取得する

この関数についてランダムな要素の出力が必要な時、出力される可能性のある要素を配列にすべて格納し、その配列に対してランダムなインデックスを指定することで要素を取得・出力するという方法があります。このとき、ランダムなインデックスは0以上の整数値...
関数リファレンス

F0000059_配列をExcelの標準機能を使って並べ替える

配列(特に2次元)の並び替えをいかに早く実行するかはプログラマにとって共通の課題です。ExcelVBA(マクロ)においてもデータ数が数万・数十万と増えるにつれて、シートやセル上だけでデータを加工することに速度の限界を感じて配列を採用した人は多いかと思います。たしかに配列はセルと比較してデータの代入・取得の速度は段違いの早さです。しかし「並べ替え」についてはExcelの標準機能に速度の優位性があります。この関数では配列をいったん仮のシートに貼り付け、並べ替えを実施した後、配列に格納し直します。
スポンサーリンク