2018-09-01から1ヶ月間の記事一覧

プリンタ名を返すProperty

プリンタ名を取得するProperty 前回 akashi-keirin.hatenablog.com の続き。 前回までに作成したInstalledPrinterクラスにPropertyを追加する。 追加するPropertyは、printerName(ByVal printerIndex As Long)とし、引数にインデックスを渡したら、該当する…

ポート名(?)付きのプリンタ名を返すFunction

ポート名(?)付きのプリンタ名を返すFunction 前回、 akashi-keirin.hatenablog.com 前々回 akashi-keirin.hatenablog.com の集大成。 コード プリンタの名前を渡したら、ポート名(?)付きのプリンタ名を返すFunctionを作ってみた。 前回同様、オブジェ…

プリンタの数を返すFunction

プリンタの数を調べるFunction Application.ActivePrinterにプリンタ名をセットしたくても、プリンタ名の後ろにくっついている「on NeXX:」の部分がわからないとセットできない。 同じプリンタに接続していても、端末ごとに「NeXX:」の部分が異なるので困る…

プリンタが存在するかどうかを判定するFunction

プリンタが存在するかを調べるFunction 軽量PDFを作成するためには、ExportAsFixedFormatメソッドを用いていたのでは限界があるので、 akashi-keirin.hatenablog.com このときのように、プリンタにJUST PDFなどの、PDF出力用プリンタを選択する。 その場合、…

「フォームコントロールのボタンオブジェクトのEnabledプロパティって、意味ないんじゃね?」問題

「フォームコントロールのボタンオブジェクトのEnabledプロパティって、意味ないんじゃね?」問題 前回 akashi-keirin.hatenablog.com の続き。 ボタンのEnabledプロパティをFalseにしてみる イミディエイト・ウインドウに activesheet.buttons(1).enabled =…

フォームコントロールのボタンオブジェクトをVBAで捕まえる

フォームコントロールのボタンを捕まえる マクロを呼び出すためのボタンをシート上に設置することがよくある。 シート上に設置したボタンをVBAで取得するにはどうすればよいのだろうか。 Nameプロパティを取得してみる ボタンの上で右クリックすると、 この…

クラスのPrivateメソッドもイミディエイトで実行できる

クラスのPrivateメソッドもイミディエイトで実行できる 再び超小ネタ。 クラスモジュールの準備 クラスモジュールを作る。 リスト1 クラスモジュール 'オブジェクト名は"HiddenBooks"' Private Function isHiddenBook( _ ByVal targetBook As Workbook) As …

個人用マクロブックはアドインに非ず

個人用マクロブックはアドインに非ず 「当り前だろバカ!」と思ったらスルー推奨。 IsAddinプロパティ イミディエイト・ウインドウに ?Workbooks("PERSONAL.XLSB").IsAddin と打ち込んで[Enter]をポチッ。すると、 Falseが返るのであった。 Windows.Countプ…

非表示ブックの数を返すFunction(Excel)

非表示Bookの数を返すFunction アドインとか、個人用マクロブックみたいな、ブックを開いたら裏で勝手に開いているブックの数と、オモテで正々堂々と開いているブックの数を別々に取得する必要があったので作ってみた。 考えかた Application.Workbooksコレ…

Split関数の裏技

Split関数の裏技 このとき、 akashi-keirin.hatenablog.com thom (id:t-hom) さんに教えてもらった。 Split関数の第2引数は省略できる 完全に思い込みで必須だと思っていた。 なるほど、Office VBA Reference の Split Function の項によると、 Syntax Spli…

セル範囲が格子状になっているか判定するFunction(Excel)

セル範囲が格子状になっているか判定するFunction いわゆる「Excel方眼紙」との戦いの一環。 セル結合とかガンガンズンズングイグイかまして作った表が、格子状になっているか判定する必要に迫られたのだった。 かつて誰かが作ったツールに不具合があって、…

[Range].MergeAreaプロパティの返り値の謎(Excel)

[Range].MergeAreaプロパティの返り値の謎 単にRangeオブジェクトのことがよく分かっていないだけかも知れないが、恥を承知で書く。 MergeAreaプロパティの返り値 こんなシートがあったとする。 J1セルとJ2セルが結合されている。 したがって、J1セル…

ファイル名に接頭辞・接尾辞を附加するFunction

ファイル名に接頭辞・接尾辞を附加するFunction ファイル名変換ツールを自作したときに、ついでに作った。 ファイル名に接頭辞を付けるFunction これは簡単。単純に先頭に文字列を追加するだけ。 リスト1 標準モジュール Public Function getPrefixedFileNa…

ファイルのコピーを作成する(FileSystemObjectオブジェクトのCopyFileメソッド)

ファイルのコピーを作成する FileSystemObjectオブジェクトを用いる。 ファイルのコピーを作成するFunction FileSysetmObjectオブジェクトのCopyFileメソッドをラップする。 参照設定でMicrosoft Scripting Runtimeにチェックを入れておく。 リスト1 標準モ…

ファイル名をチェックするFunction

不正なファイル名を検出するFunction 作ってみた。 コード コードは次の通り。 リスト1 標準モジュール Public Function hasProhibitedCharacter( _ ByVal fileName As String) As Boolean '……(1)' hasProhibitedCharacter = True '……(2)' Dim ar As Varian…