ファイル名が重複しているときに自動ナンバリングしたファイル名を返すメソッドの改良

ファイル名が重複しているときに自動ナンバリングしたファイル名を返すメソッドの改良 akashi-keirin.hatenablog.com これの改良。 改良後のコード 前回は、イマイチFileSystemObjectを使いこなせていなかったので、FileSystemObjectの実力をもっと活用しよ…

カーソルを任意の場所に置くFunctionの改良(Word)

カーソルを任意の場所に置くFunctionの改良(Word) 似たような書類を、宛先別に大量生産するような場合に、差込印刷機能を使う場面は多いと思う。 で、差込印刷の差込レコードごとにWordドキュメントが生成されると便利(というか後々扱いやすい)なので、 ak…

拡張子のないファイル

拡張子のないファイル 前回の akashi-keirin.hatenablog.com に、ことりちゅん (id:Kotori-ChunChun) 氏からコメントをいただいた。 曰く、 実用上困ることは滅多にないですが、拡張子のないファイルも存在するので、自作された方は要注意です。 と。 なるほ…

ファイルの拡張子を取得する

ファイルの拡張子を取得する 車輪の再発明 ファイル名の拡張子を取得したくて、次のようなコードを書いた。 ちなみに、マクロを書いたブックのあるフォルダ内のTargetFilesフォルダ内に、次のようにファイルがあるものとする。 リスト1 標準モジュール Publ…

Filter関数というものがある

Filter関数というものがある こないだ、オブジェクト・ブラウザをぐりぐりやっていたら、「クラス」欄にStringsというものを発見。 ただし、オブジェクト・ブラウザ上では、「クラス」としてではなく、「モジュール」として記載されている。 Stringsを選ぶと…

マクロ無しで転記と同時に自動並べ替え(種明かし)

マクロ無しで転記と同時に自動並べ替え(種明かし) akashi-keirin.hatenablog.com の種明かし……ですが、最初に断っておきます。 怒らないでくださいよ! いや、ホントに。 おわび 実は、この画面。 一部、文字色をセルの背景と同じ(要するに、今回の場合は…

マクロ無しで転記と同時に自動並べ替え???

値の自動並べ替え??? 今日、職場で面白いアイディアに出会った。 同僚が、「日付の順番がデタラメに並んでいても、別シートに日付順に転記されるはずなのに、その機能が失われている。どうなっているのか見てほしい」と言うので、そのExcelブックを見てみ…

foobar2000の日付時刻データをDate型の値に変換する

foobar2000の日付時刻データをDate型の値に変換する Date型の値を、foobar2000独自の日付時刻文字列に変換するのは akashi-keirin.hatenablog.com で作成済み。 今度は、その逆をやってみる。 考え方 foobar2000のPlayback Statisticsでは、再生日時を18ケタ…

Enumの研究(3)

Enumの研究(3) こいつら akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com の続き。 今回はちょっと手の込んだことをする。 組み込みプロパティ名と衝突した場合のち~んw珍現象 まず、Sheet1に次のような表を作成しておく。 次に、Sheet1モジュ…

Enumの研究(2)

Enumの研究(2) 前回 akashi-keirin.hatenablog.com の続き。しつこくEnumを追究することにする。 組み込みプロパティ名との衝突 たとえば、Enum「Hoge」に「Name」という要素を持たせてみる。 リスト1 標準モジュール宣言セクション Public Enum Hoge Name …

Enumの研究(1)

Enumの研究(1) コードの可読性を上げる一つの方法として、 Enumを適切に使う というものがある。 ずいぶん前からEnum自体は使っていたが、最近やっと適切な使い方が定まってきたように思うので、Enumについていろいろ実験したことを書き留めておく。 Enumの…

「Any型」の追放に成功した

Any型の追放に成功した akashi-keirin.hatenablog.com これの続報。 この記事には、id:imihito さんからコメントをいただいていた。 曰く、 記事の `Call MoveMemory(lpMemory, VarPtr(strText), lngSize)` に関しては`VatPtr`を`StrPtr`にするとどうなるで…

ファイル名が重複するときに自動ナンバリングする

ファイル名が重複しているときに自動ナンバリングしたファイル名を返すメソッド 頭の体操に作ってみた。 ExportAsFixedFormatメソッドで新規ファイルを作成したときなんかに、同一名のファイルが存在したときの対策用。 たとえば、保存先に「ち~んw.pdf」…

ワークシートを任意の名前の軽量PDFにする

軽量PDFに任意のファイル名を付ける ワークシートの軽量PDF化 ExcelのワークシートをPDF化するとき、ExportAsFixedFormatメソッドを用いると、非常に軽快に動作する反面、出来上がったPDFドキュメントのサイズが異様に大きくなってしまう。 JUST PDF等のPDF…

foobar2000のPlayback Statisticsを編集するマクロ(2)

foobar2000のPlayback Statisticsのデータを編集するマクロ とりあえず成果物を晒す 細かいことは後回しにして、ひとまず今回の成果物を晒しておくことにする。 バグ対策とか、操作ミス対策は(個人的に用いるツールゆえ)不十分だけれど、なかなかうまく出…

foobar2000のPlayback Statisticsを編集するマクロ(1)

foobar2000のPlayback Statisticsのデータを編集するマクロ えらい久しぶりに、foo_playcount.dllをアップデート(Verなんぼかわからん。2011年のヴァージョンみたい。)したら、どうも再生記録の保存方法が変わったようで、これまでの再生記録が全部リセッ…

Law型? Any型?

「Law型」、「Any」型の意味がわからない ※私が所有しているのは、「Second Edition」じゃない方です。 『VBA Developer's Handbook』に載っていた、Clipboardクラスのコードの中で、WindowsAPI関数を宣言するところがある。 その中に、意味のわからない箇所…

Property Get プロシージャを作るFunction

Property Get プロシージャを作るFunction 最近やたらPropertyを多用しているので、Propertyプロシージャを書くのが面倒になってきた。 特にProperty Getなんて同じパターンの繰り返しが多いので、Functionにしてやった。 Property Getを作るFunctionのコー…

シートモジュールへのインターフェース実装の代案

シートモジュールへのインターフェース実装の代案 ごく一部の(?)VBAerの間では、「シートモジュールにインターフェースをImplementsすると派手にバグる」というのは有名だと思う。「ごく一部で有名」であるということを「有名」と称するのかどうかはとも…

同じ値のセルを結合する~再び~

同じ値の連続セルを結合する 年度末の後始末及び次年度の準備をしていく中で、だいぶ前 akashi-keirin.hatenablog.com で作成したメソッドに重大な欠陥があることに気付いたので、根本からやり直した。 重大な欠陥 前回のやり方は、セルを上から順にスキャン…

インターフェース周りのち~んw現象

インターフェース周りのち~んw珍現象 前回 akashi-keirin.hatenablog.com のやり方は、別プロジェクト間でインターフェースを共有しようとしたのがそもそも間違いだったのかも知れん、と思い直して、やり方を変えてみた。 thom.hateblo.jp コチラを参考に…

ThisWorkbookモジュールにインターフェースを実装することはできるのか

ThisWorkbookモジュールにインターフェースを実装することはできるのか 前回 akashi-keirin.hatenablog.com ブックのThisWorkbookモジュールにメソッドを搭載したら、まるでブックのメソッドであるかのように呼び出すことができることを示した。 では、ThisW…

別ブックのThisWorkbookモジュールのメソッドを呼ぶ(Excel)

別ブックのThisWorkbookモジュールのメソッドを呼ぶ 前回 akashi-keirin.hatenablog.com 別ブックのシートモジュールのメソッドを呼ぶ実験をした。 では、別ブックのThisWorkbookモジュールのメソッドはどうなのだろうか。 コードの追加 まず、ち~んw1号.…

別ブックのシートモジュールのメソッドを呼ぶ(Excel)

別ブックのシートモジュールに書いたメソッドを呼ぶ シート独自の処理など、シートモジュールに書いておくのは、「コードの整理」という観点からは非常に便利。 では、シートモジュールに書いた処理を、他のブック(プロジェクト)から呼び出すことはできる…

名づけて、「ダルマ落とし方式」! (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 …