2018-01-01から1年間の記事一覧

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]」など…

初めてのIE操作(3)~HTMLソースをファイルに出力するメソッド

WebページのHTMLソースを出力するメソッド 前々回、 akashi-keirin.hatenablog.com 前回 akashi-keirin.hatenablog.com の続き。 Webページ/アプリを操作するには、HTMLがどうなっているのかを知らなければどうにもならない。 ただし、前回すでに起動中のIE…

初めてのIE操作(2)~起動中のIEを取得するFunction

ウインドウのタイトルを元に起動中のIEを取得するFunction 前回 akashi-keirin.hatenablog.com の続き。 ページのURLや、HTMLソースが分からないときがある。 Webアプリで移動した先のページなんかの場合だ。たいていアドレスバーが切られていたりするし、右…

初めてのIE操作(1)

初めてのIE操作(1) IEベースの業務用Webアプリの操作がくっそダルかったので、生まれて初めてVBAからのIE操作にチャレンジしてみたら、意外と簡単だったので、報告。 業務用Webアプリ操作のために私が乗り越えなければならなかった壁は以下の通り。 VBAからI…

マーカ部分をRange配列として取得する(Word)

Findオブジェクトを用いてマーカ部分を取得する この記事 akashi-keirin.hatenablog.com へのid:imihitoさんのコメントにより、Findオブジェクトを用いて「蛍光ペン」のところをRangeオブジェクトとして取得できるということを知った。 参考にしたのは『みん…

UndoRecordオブジェクトというものがある(Word)

UndoRecordオブジェクトというものがある 前回の akashi-keirin.hatenablog.com に、id:imihito さんからコメントをいただいた。 曰く、 また、Undoの履歴は、以下のようにするとひとまとめに出来たはずです ```vb Application.UndoRecord.StartCustomRecord…

Document.Charactersコレクションの要素を一つづつ処理するのは大変(Word)

WordでDocument.Charactersオブジェクトを一つづつ処理するのは異様に時間がかかる 資料の修正箇所に網掛けをしたものと、同じ内容で網掛けのないバージョンを要求されることがある。 そして、網掛けありバージョンと網掛けなしバージョンが併立するというこ…

飛び地状態のセル範囲にも名前を付けることができる(Excel)

飛び地状態のセル範囲にも名前を付けることができる Excel使いこなしマンには常識だったのかも知れないが、便利だなと思ったので記しておく。 飛び地状態のセル範囲に名前を付けてみる まず、 こんな風に、投げやりに文字列を入れておく。 別に入れなくても…

整数以外の列挙体っぽいものは実現可能なのか

定数的なクラスを列挙体っぽく使う 前回、 akashi-keirin.hatenablog.com クラスモジュールとPropertyを用いて、列挙体的な整数以外の定数が作れるのではないか、と述べたが、かなり浅はかな考えだったようだ。 列挙体の何が便利といって、たとえば、 Public…

整数以外の列挙体っぽい定数を実現する

整数型以外の列挙体ぽいものを実現する 題名が分かりにくくてすまない。 最近、VBA Deveroper's Handbookにハマっている。 んで、その中で面白そうなアイディアを発見したので、ちょっと実験してみた。 今出先で、『VBA Deveroper's Handbook』が手元にない…

配列の要素を入れ換えるFunction

配列の要素を入れ換えるFunction 配列の要素を入れ換えるFunctionを作ってみた。 仕様 とりあえず、引数として当該の配列、入れ換え対象のインデックス番号二つを受け取り、入れ換え済みの配列を返すようにする。今回は、Long型の配列に対応する。 コーディ…

Object型変数を積極的に使う

Object型変数を積極的に使う 今まで、Object型の変数を積極的に使うことはなかった。 VBAで作成したツール類も、内輪で使うものばかりなので、CreateObjectを自分から使うことはまずなかった。参照設定してNewばっかりだった。 今回、Object型変数を使ったら…

RangeオブジェクトのNameプロパティのち~んw現象(Excel)

RangeオブジェクトのNameプロパティに関するち~んw珍現象 とにかくご覧いただきたい。 ち~んw珍現象 A1セルに「ち~んw」と入力 まず、このようにA1セルに「ち~んw」と入力しておく。 イミディエイト・ウインドウで名前を定義 イミディエイト・ウイン…

選択範囲のルビを除去する(Word)

選択範囲のルビを除去する 青空文庫(HTML版)からWordに文章をコピペすると、 こんなふうに、むやみやたらとデカいルビが設定されていて、レイアウトがめちゃくちゃになる。 ルビのサイズを小さくすることも考えたが、ひとまず選択範囲のルビを除去する方向…

「写経」用教材を作成する(Word)

「写経」用教材(?)を作成する Wordの「原稿用紙設定」機能 『一太郎』では、「文書スタイル呼び出し」(?)という機能で、コクヨ社の原稿用紙の書式を呼び出すことができる。んで、印刷するときに「升目を印刷する」というチェックボックスにチェックを…

Sentencesコレクションの要素の一番最初の「文字」が何文字目かを調べるFunction(Word)

Sentencesコレクションの要素の一番最初の「文字」が何文字目かを調べるFunction 分かりにくいタイトルですまぬ。 文の最初の文字の位置を調べたい。たとえば、 「……『ち~んw』とか言うな!」と言った。 みたいなときに、最初の文字「ち」の位置が知りたい…

記号は黒字、文字は白字にするマクロ

記号を黒字、文字を白字にする 前回 akashi-keirin.hatenablog.com を用いて、記号は黒字に、文字は白字にするメソッドを作った。 コード コードは次の通り。 リスト1 標準モジュール Private Sub changeFontColor(ByVal targetFont As Font) '……(1)' If is…

文章の中で使われる記号かどうかを判定するFunction(Word)

文章の中で使われる記号かどうかを判定するFunction ちょっとやってみたいことがあって、標題のようなFunctionを作ってみようと思い立った。 以前、 akashi-keirin.hatenablog.com 文字が漢字かどうかを判定するFunctionを作ったときは、ある意味非常に簡単…

全角ダブルクォーテーションの取り扱いはめんどくさい

全角のダブルクォーテーション 全角のダブルクォーテーションを文字列として扱うのに苦労したので、覚書的に記しておく。 普通に文字列として書いてみる 次のように書いてみる。 str = "“" この状態で、[Enter]をふわっと押してみる。すると、 おわかりだろ…

SentencesコレクションとCharactersコレクション(Word)

SentencesコレクションとCharactersコレクション SentencesコレクションとCharactersコレクションって、ちょっと変わっているよな、というだけの話。 Sentencesコレクションの要素はSentenceオブジェクトに非ず たとえば、コード・ウインドウ上で、 Dim targ…

インターフェイスに汚染されたWorksheetオブジェクトの末路

インターフェイスに汚染されたWorksheetオブジェクトの末路 前回 akashi-keirin.hatenablog.com インターフェイスを実装したせいでおかしくなってしまったWorksheetオブジェクトから、インターフェイスを取り外したらどうなるのか。 一枚の画像に語らせたい…

シートモジュールにインターフェイスを実装するのはやめた方がいい

シートモジュールへのインターフェイスの実装はやめた方がいいかも知れない 以前、 akashi-keirin.hatenablog.com で、シートモジュールにもインターフェイスを実装することができる、ということを示した。 んで、そのときに使ったブックを今日久しぶりに開…