名づけて、「ダルマ落とし方式」! (Word)

名づけて「ダルマ落とし方式」! 前回 akashi-keirin.hatenablog.com のマヌケ記事の続き。 シェイプが一掃されない理由 どうも、For Eachでループさせる際に、VBAは内部でShapesコレクションに番号を振って、その番号順に処理をしているらしい。 ただ、Dele…

Document内のテキストボックスを一掃すること能わず……(Word)

WordのDocument上からテキストボックスを一掃できない やたらとテキストボックスがベタベタ貼り付けられた文書に出会った。 文章をコピペしようにも、巻き添えでテキストボックスが選択されてしまうのでうっとうしいことこの上ない。 で、マクロで一掃してや…

ルビと親文字の距離を調整するFunction(Word)

ルビと親文字の距離を調整するFucntion ルビと親文字の距離を司るのは、 EQ \* jc4 \* "Font:MS 明朝" \* hps10 \o\ar(\s\up 10(ムーンサルト),月面宙返) の中の \s\up 10 の部分。 たとえば、 この状態のときのルビの設定は、 このとおり。 このときのフ…

繰り返しを伴う処理をまとめる

フィールドコード総ナメ方式のプロシージャをまとめる 前回までの3回 akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com で紹介したFunctionを使って、選択範囲のフィールドコードを総当たりで処理するプロシージャ…

ルビのフォントの種類を変更するFunction(Word)

ルビのフォントの種類を変えるFucntion 前々回 akashi-keirin.hatenablog.com 前回 akashi-keirin.hatenablog.com のつづき。 今度は、ルビのフォントの種類を変える。 上記フィールドコード、 EQ \* jc2 \* "Font:MS 明朝" \* hps10 \o\ad(\s\up 10(ムー…

ルビのサイズを変更するFunction(Word)

ルビのサイズを変えるFunction 前回 akashi-keirin.hatenablog.com の続き。 ルビのサイズを変える ルビのサイズを変えるには、 上記フィールドコード、 EQ \* jc2 \* "Font:MS 明朝" \* hps10 \o\ad(\s\up 10(ムーンサルト),月面宙返) のうち、 \* hps10 …

ルビの割付を変更するFunction(Word)

ルビの割付を変更するFunction 正確に言えば、ルビの割付位置を変更した後のFieldオブジェクトのCode.Textプロパティの値を変更するFunctionです。 ルビの割付の変更 たとえば、 この「月面宙返」にルビを振る。 「ルビ」ダイアログボックスにこのように設定…

検索速度の測定 再び……

検索速度の測定再び…… 前回 akashi-keirin.hatenablog.com ご紹介したように、UsedRangeまわりのExcelの挙動について重大な思い違いをしていたことに気付いた私は、心を入れ替えて実験をし直すことにした。 実験環境の再整備 まず、イミディエイト・ウインド…

Worksheet.UsedRangeに関する衝撃の事実(大袈裟)

Worksheet.UsedRangeプロパティに関する衝撃の事実(大袈裟) はけたさんの一言 Twitterで、はけたさんが、 こんなことをおっしゃっていたので、実験してみた。 UsedRangeとは何なのか まず、 akashi-keirin.hatenablog.com このときに使用した このシートの…

検索の速度を測ってみた

検索の所要時間を調べた ちょっと興味があったので、調べてみた。 このように、1000行1000列目のセル、すなわちALL1000セルに「ち~んw」という値(笑)を入力したシートを準備する。 で、この「ち~んw」を検索するのにどのぐらい時間がかかるものなのか…

乱数を作るクラスを改良した

乱数を作るクラス ランダムに並べ替える作業というのは滅多にないのだけれど、絶妙に忘れかけた頃に発生するので、 akashi-keirin.hatenablog.com このときにクラスまで作っていた。 んで、改めて見直してみたら、イマイチやなあ、と(笑)。 そんなわけで、…

自作WindowsAPIクラスにユーザが選択したフォルダのパスを返すFunctionを追加した

ユーザが選択したフォルダのパスを取得するFunction 相変わらず、WindowsAPIにハマっている。 今回も、名著『大村あつしのExcel VBA Win64/32 API プログラミング』を参考に、おなじみ、自作WindowsAPIクラスにメソッドを追加する。 akashi-keirin.hatenablo…

名著『大村あつしのExcel VBA Win64/32 API プログラミング』に誤植???

誤植? おなじみ、『大村あつしのExcel VBA Win64/32 API プログラミング』に、誤植かも知れない箇所を発見したので、ご報告。 すでに出版元のWebページ等で訂正されているかも知れないが、そこは調べていない。(←調べろ。) 134~135ページ 当該書籍(以下…

自作WindowsAPIクラスにウインドウのクラス名を返すFunctionを追加した

ウインドウのクラス名を返すFunction WinAPIの勉強中。 コチラの本に、アプリケーション別のクラス名が掲載されていたのだが、Internet Explorerのクラス名が載っていなかったので、アプリケーションのクラス名を返すFunctionを作ってみた。 コードを書いて…

自作WindowsAPIクラスを修正した

WindowsAPIクラスの修正 『大村あつしのExcel VBA Win64/32 API プログラミング』 二年半程前に購入したものの、「だめだ、今の私では歯が立たない……」と諦めていた コチラの本、『大村あつしのExcel VBA Win64/32 API プログラミング』。 「今ならそこそこ…

指定フォルダからファイル名を取り出すクラス

指定したフォルダからファイル名を取得するクラス Twitterではけたさんがおっしゃっていたものを私も作ってみた。 あまりうまくないかも知れないけれど……。 指定フォルダからファイル名を取得するクラス オブジェクト名は「TargetFiles」とした。 リスト1 …

テキストボックス内のハイライト部分をそれぞれ配列に格納して、Collectionにする(Word)

テキストボックス内のハイライト部分をそれぞれ配列に格納して、Collectionにする 意味の取りづらいタイトルですまない。 テキストボックス内のハイライト部分(Rangeオブジェクト)をテキストボックスごとに配列にして、それぞれの配列をCollectionにぶち込…

転記用マクロをサクッと書いてみた(Excel)

転記用マクロをサクッと書いてみた Twitterで話題になっていたのでちょっと乗っかってみた。 転記処理は、基本的に各転記元のブックの方で、集計(積み上げ)対象のデータ(笑)だけを別シートに転記しておいて、集計(積み上げ)時には、そのシートのデータ…

テキストボックスの先頭にカーソルを置く(Word)

テキストボックス内の先頭にカーソルを置く Documentオブジェクトの場合 Documentオブジェクトの先頭位置にカーソルを置くのは簡単。 Document.Range(0, 0).Select とすれば、ドキュメントの先頭位置にカーソルを置くことができる。 テキストボックスの場合 …

配列を配列の要素にする

配列の配列を作ってみる 配列の要素を配列にすることはできるのか。 やってみた。 準備 Split関数をラップしたFunctionを作って、簡単にString型の配列を作れるようにした。 リスト1 標準モジュール Private Function setArray( _ ByVal spaceSeparatedWord…

Findオブジェクトの設定をリセットするメソッド

Findオブジェクトの設定をリセットするメソッド このとき akashi-keirin.hatenablog.com のリスト1で、Document内の黄色蛍光マーカ位置をRange配列として返すメソッドを作った。 その中で、Findオブジェクトを初期設定する部分、すなわち、 Call Selection.…

Document.ShapeオブジェクトのNameプロパティとは何なのか(Word)

Document.ShapeオブジェクトのNameプロパティとは何なのか ちょっと意味がわからない現象に気づいたので、記しておく。 二つのテキストボックス WordのDocumentに二つテキストボックスを設置してみる。 こんな感じ。 んで、次のようなコードを実行してみる。…

IE操作のためのクラスを作った

クラスにしてしまったのでぶちまけておく 職場のクソWebアプリの攻略の過程で色んなメソッドを作ったので、無駄にクラス化しておいた。 思いつきを行き当たりばったりで形にしただけなので、ツッコミどころはたくさんあると思う。 複数インスタンスを作るシ…

初めてのIE操作(7)~InternetExplorerオブジェクトが現在表示中のDocumentを返してくれない問題に対応する

InternetExplorerオブジェクトが現在表示中のDocumentを返してくれない問題への対応 前々回の問題点の項でも触れたとおり、VBAからHTML上の要素に対してclickメソッドを実行してページ移動した場合、親元のInternetExplorerオブジェクトのDocumentプロパティ…

初めてのIE操作(6)~InternetExplorerオブジェクトのDocumentプロパティを調べるFunction

InternetExplorerオブジェクトのDocumentプロパティの返り値を確認するFunction 前回 akashi-keirin.hatenablog.com の「問題点」の項にも書いたとおり、VBAからIEを操ったときに、画面に表示されているHTMLドキュメントと、InternetExplorerオブジェクトのD…

初めてのIE操作(5)~リンク(ボタン)をクリックしてページ移動する

リンクを取得してクリックする 前回までの4記事で、 akashi-keirin.hatenablog.com 目的のWebページを開き、 akashi-keirin.hatenablog.com 起動中のIEオブジェクトを取得し、 akashi-keirin.hatenablog.com 表示中のHTMLドキュメントのソースをぶっこ抜い…

WindowsAPI関数をクラスモジュールに封印するとメッチャ便利

WindowsAPIの関数をラップするクラスを作ったらメッチャ便利だった タイトル通り。 そもそもは、 コチラの『VBA Developer's Handbook』で紹介されていたテクニックで、ちょっとやってみたら便利だったというだけの話。 ちなみに、コチラの書籍は、VBA四天王…

列挙体の要素列挙時に「:」による改行が使えた

列挙体の要素列挙時に「:」による改行が使えた 前回の akashi-keirin.hatenablog.com に、id:imihito さんからコメントをいただいた。 曰く、 「: hgAho: hgBaka: hgKasu」 のように先頭に「:」を付ければ大丈夫 と。 ぬわにぃ~~~~!!(昭和風) という…

列挙体の要素列挙時に「:」による改行は使えない

列挙体の要素の列挙に「:」による改行は使えない もう題名以外に書くことがない。 列挙体の要素列挙時の改行 普通は、 こんなふうに、列挙体の要素の列挙をするときは、改行を用いる。 ただ、要素数が多いと異様にタテ長になってしまうのが南天のど飴難点。 …

初めてのIE操作(4)~タグ名とキーワードからHTML要素を取得するFunction

HTML要素をタグ名とキーワードで特定して取得するFunction 前回まで akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com で、Webページを取得して、仮に「右クリック→ソースの表示」や「[Ctrl]+[U]」や「[F12]」など…