t-hom’s diary

主にVBAネタを扱っているブログ…とも言えなくなってきたこの頃。

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

VBA 参照設定とCreateObjectは全く別の経路でオブジェクトを参照する。

昨日以下の記事を書いた。 thom.hateblo.jp要約すると、レジストリのHKEY_CLASSES_ROOT直下にプログラムID(InternetExplorer.Application等)のキーがあり、その下のCLSIDにGUIDが入っているのでそれをまたレジストリから辿ると、TypeLibを辿れるというもの。…

VBA CreateObjectか参照設定のどちらかしか分からないとき、もう片方を調べる方法(NG)

VBA

1/31追記 お詫び 以下の記事はレジストリを辿ってCreateObjectと参照設定を相互に調べる方法を書いていますが、IEなどごく一部のアプリにしか適用できないことが分かりました。つまり、あまり有用なテクニックではありません。はやとちりですみません。 一応…

VBA 任意個の引数が全て同じ値かどうかを判定する関数を作る

VBA

プログラムを書いていて、Aが1で、かつBも1ならば処理を実行するというようなケースが時折発生する。これを素直に書くとこういうコードになる。 If A = 1 And B = 1 Then MsgBox "処理" End If しかし、さらにCやDも増えたらだんだん冗長なコードになってく…

仕事がはかどるJavaScript活用術を購入

書店で前から気になっていた書籍を購入した。仕事がはかどるJavaScript活用術─Word/Excelで自動処理して効率アップ作者: クジラ飛行机出版社/メーカー: 日経BP社発売日: 2014/09/20メディア: 単行本この商品を含むブログ (1件) を見るWindowsは「Windows Scr…

WordにVBAコードを張り付けると1行1段落になってしまう問題を回避するマクロ

VBA

今回の記事は、前回の記事を踏まえて書くので、未読の方はこちらもどうぞ。 thom.hateblo.jpVBエディタからコードをコピーしてWordに張り付けると、次のように1行1段落になってしまう。 段落間には余白がとられるため不自然に行間が広く開いてしまう。設定で…

Wordの改行は、実はEnterじゃなくて、Shift + Enter。

WordでEnterキーを押すと現れるこの記号。 Word使いにはおなじみの記号だ。多くの方がいまだに誤解しているのだが、これは「改行記号」ではない。行指向のテキストエディタとは異なり、Wordは段落指向のソフトウェアである。上の記号は「改段落」を表す段落…

VBA ソースコードをカラーで印刷するWordマクロ

VBA

同じコードでもキーワードに着色されているだけで、ずいぶん見やすくなる。 しかし残念なことに、VBエディタの印刷機能ではソースコードをカラー印刷できない。コピーしてWordに張り付けても、元がただのテキストなので黒一色になってしまう。 そこで今回は…

VBA 文書をまともなHTMLに変換するWordマクロ

VBA

最近、メインサイト(以下)の更新が滞っている。 トップページ - You.Activate当初はhtmlの学習も兼ねてテキストエディタで作ったサイトなのだが、ブログの快適さに慣れた後では記事を一本上げるだけでも結構面倒くさい。かといってWordpressを導入するにはレ…

VBA Debug.Assertの使い方

VBA

以下のプログラムを実行すると、ランダムな数値が出力される。 Sub BugSample() Dim Arr(1 To 10) As Long Dim UpperBound As Long: Upper = 1000 Dim LowerBound As Long: Lower = 10 Dim i As Integer For i = 1 To 10 Arr(i) = Int((UpperBound - LowerBo…

VBA ウォッチウインドウでツルカメ算を解く ~ ウォッチウィンドウの使い方・式とは何か

VBA

ウォッチウインドウの基本 VBエディタの表示メニューからウォッチウインドウを選択すると、以下のようなウインドウが開く。ウォッチウインドウとは、あらかじめ登録した変数やオブジェクトのプロパティの中身を、プログラムの実行中に確認できるウインドウで…

VBA フォルダー階層を辿るサンプル ~ 再帰をマスターする

VBA

VBAではFileSystemObjectを使用することで簡単にWindowsのフォルダーを扱うことができる。※FileSystemObjectを使用するには、VBEのツールメニューから参照設定で、MicrosoftScriptingRuntimeを参照しておく必要がある。まず手始めに、特定フォルダ直下のファ…

VBA 似ているようで違うExcel・Word・PowerPointのシェイプをオブジェクトブラウザーで比較する

VBA

ブック、シート、セルなどの操作に比べると、シェイプの操作に関する情報はまだまだ少なく、ある程度コツをつかむまではマクロ記録で調べながらの対応となる。Excelのマクロの記録は優秀で、シェイプに行った操作も逐一記録してくれる。しかしWordのマクロの…

VBA オートメーション、参照設定、ライブラリ、タイプライブラリ、DDE、COM、OLE、ActiveXなどの用語整理。ついでに.NETも。

VBAには外部オブジェクトを操作するために参照設定という機能が用意されている。そういう機能だと割り切って使用する分には何ら問題はないのだが、参照設定の仕組みなどに興味を持ってしまうと、高い確率でタイプライブラリやCOM、ActiveXなどのの単語に出く…

当ブログは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。