忍者ブログ

VBScriptのInputBoxでキャンセル判定する方法について

2021年11月07日
前に投稿したクリップボードの内容をファイル化するVBScriptについて
https://aki.p-kin.net/Entry/25/

メールなんかを保存するのに便利でちょいちょい使っているんだけど、
別用途で提供したときに、キャンセル機能が欲しいと要望が出た。

InputBoxに何も入力しなかった場合も、キャンセルボタンを押した場合も
返り値は、空白なので制御不能。

確かにキャンセルはしたい。でも、何も入力せずに保存できた方が便利。

・・・思いついた!!



InputBoxのオプションに初期値を設定できるから
半角スペースを初期値に設定しておいて、
返り値が空白ならキャンセル、半角スペースなら「固定文字+日付」
その他の文字なら「固定文字+日付+(その他の文字)」に分類しよう!


って、デフォルトの文字を最初から設定しておいてあげればいいじゃん。。。

改修か所は以下の通り。
●InputBoxにデフォルト追加。説明が不親切だったので作文。長いので定数に格納した。
●メイン処理を明確化するために、Sub main()に処理をまとめた。
●ファイル名の共通部分を定数に格納した。

以下、ソース。
PR
つづきはこちら "VBScriptのInputBoxでキャンセル判定する方法について"

過去記事一覧

2021年10月30日
自分で書いた「ワードの表の左端に通番をふるマクロ」を見つけられず、 100回目記念で書いた記事一覧が役に立った。

このブログ、過去の記事見つけられないことに気付いたので、
記事一覧を更新することにした。

以下、記事一覧(2022/7/12時点)。
つづきはこちら "過去記事一覧"

マクロの実行ログを保存するツール

2021年10月26日
マクロに限らず、めっちゃ検討して作ったものより
とりあえずで作って改良を重ねたものの方が
便利で使いやすかったりする。



マクロだと、どれが一番使われている?


それを調べるため、ログを出力するマクロを作ってみた。


手順はざっと以下のとおり。

1.ログファイルがなければ作る
2.ログファイルを追記モードで開く
3.テキストを書き込んで閉じる

ほら、めっちゃ簡単!


ログファイルがなければ作るモジュールについては、
フルパス指定で一発で作れるように細工をした。

https://aki.p-kin.net/Entry/96/

フラグでファイルを作ったかわかるようにして、
作った場合は、タイトル行を書き込む仕様にした。
(作っといてあれだけど、集計側マクロとの兼ね合いでいらねーかも)

自作したプロシージャの1行目に以下のログを仕込めば
ログをためることができる。
★WriteLog(プロシージャ名)
ちなみに、自分のログは、圧倒的にオートフィルタマクロが1位でした。

以下、ソース。
つづきはこちら "マクロの実行ログを保存するツール"

同じタイプのオートシェイプを選択するマクロ

2021年10月14日
最近夜更かしで寝不足気味。

夜にパソコンやるのよくないと分かってるけど、
ついつい手を伸ばしちゃう。自律ルールを作るかな。


今回もまたオートシェイプの話。

オートシェイプの枠線の太さや塗りつぶしの色の変更を
一括でできると便利だよね。

2つ目以降の変更をF4キーでやってくにしても
数が多いとやっぱりめんどい。

ただ、マクロで実行しちゃうとUnDoが使えないので、
オートシェイプのタイプが同じものを選択するマクロを作ってみた。




汎用性を考えて、複数のシェイプを選択した場合は
いずれかのシェイプタイプと同じなら選択する。

処理の流れは以下のステップ
1.シェイプを選択してなかったらエラーにする。
2.選択中の全シェイプに対してループさせる。
3.シェイプタイプを調べ辞書に格納する。
4.シート内の全シェイプに対してループさせる。
5.辞書に登録済みのシェイプタイプなら選択する。
6.結果をメッセージボックスに出力

今回は簡単なので、以下ソース。
つづきはこちら "同じタイプのオートシェイプを選択するマクロ"

マイドキュメントにフォルダがなければ作るマクロ(その2)

2021年10月12日
前回投稿した最下層のフォルダを作るマクロについて
別バージョンを思いついた。

コマンドプロンプトでのフォルダの作り方をググったらこんなページが出てきた。

https://qiita.com/arc-one/items/756dcf5332bf652f702c

コマンドプロンプトでフォルダのドラッグドロップなんてできるね!!


注目点はそこじゃなくて、ディレクトリを作るコマンドに
「-p」のオプションを付ければ一気に作れるとのこと。

前にテキストの文字列をコマンドプロンプトで実行するマクロを作ったので合体!

作ったといってもoffice TANAKA様のパクリでしたw

http://officetanaka.net/excel/vba/tips/tips27.htm


この★ExcuteCommand_cmdモジュールはめっちゃ便利で、
一回作っちゃえば下準備なしでいつでもコマンドプロンプトを動かせる。

てな感じで以下ソース。
つづきはこちら "マイドキュメントにフォルダがなければ作るマクロ(その2)"