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

ExcelVBAでWordドキュメントを軽量PDF化する

ExcelでWordドキュメントを軽量PDF化する ExcelでWordドキュメントのファイル名の一覧表を作って、必要なものだけPDF化する、というのがお題。 ExportAsFixedFormatメソッドを使うやつは既に作成済みなので、PDF化部分を差し替えるのが目標。 ドキュメントを…

プリンタ名を調べる

プリンタ名を取得する akashi-keirin.hatenablog.com コチラをうpしたところ、Twitterで次のサイト(『パソコンの小技・備忘録(ExcelのVBAで、パソコンのプリンタ一覧を取得したい。)』)をご紹介いただいた。 たぶん、 プリンタ名を比較するときにApplic…

ワークシートの軽量PDF化(Excel)

アクティブシートのPDF化 akashi-keirin.hatenablog.com このときにも書いたように、アクティブシートをPDF化するときにはWorksheet.ExportAsFixedFormatメソッドを使う。 ただ、この場合、やたらファイルサイズがデカくなってしまうのが悩みのタネだった。…

メソッド呼び出し時にモジュール名の記述を強制する

画期的なアイディア(嘘) akashi-keirin.hatenablog.com このときに、 モジュール名を指定しないと使えない、とかだったら便利だと思ったんだけどなあ。 とか書いていたんだが、画期的な解決法が思い浮かんだので記しておく。 同一メソッドを持つダミーモジ…

列挙体にはメンバを何個列挙できるか

列挙体はいくつまで列挙できるか 列挙体のメンバ数の最大って、いくつなのだろうか。 ちょっと調べてみた。 Integer型の最大値 Integer型の最大値は32767。へえ。意外と小さいな。 標準モジュールの宣言セクションに次のように書いてみる。 Public Enum MaxS…

「名前の定義」再入門[Excel]

名前の定義 セル範囲に名前を付ける方法 akashi-keirin.hatenablog.com コチラにExcelVBAer (id:x1xy2xyz3) さんからコメントをいただいた。その中に ①名前の定義で以下の2つを定義 ActCell = INDIRECT(ADDRESS(ROW(),COLUMN())) UpCell = OFFSET(ActCell,-…

Range.BorderAroundメソッド[Excel]~車輪の再発明

車輪の再発明 Range.BorderAroundメソッド 前回の akashi-keirin.hatenablog.com に、 ぴぼったー さんからコメントをいただいた。曰く、 つ borderaroundメソッド なんと、外枠線を引くメソッドがあったのだった。 またしても車輪の再発明をしてしまったの…

セル範囲の外枠に罫線を引く[Excel]

セル範囲の外枠罫線 VBAでセルの罫線の設定なんてしたことがなかったので知らなかったが、セル範囲の外枠だけに罫線を設定するのは非常にメンドクサイのだった。 セルの罫線はRangeオブジェクト配下のBordersコレクションで管理されている。 で、罫線の位置…

ナゾの書式設定文字列(Range.NumberFormatLocalプロパティ)

ナゾの書式設定文字列「;;;」 前回の akashi-keirin.hatenablog.com こちらに、 ぴぼったー さんという方からコメントをいただいた。曰く、 本日のサンプルのパターン、 (要望)列方向に連続する場合に表記を省略する (実装)セルの結合を行う (Excel屋の…

同じ値の連続するセルを結合する[Excel](Range.Mergeメソッド)

同じ値の連続するセルを結合する Excelは、表計算ソフトとしてよりも、方眼紙として使われているケースが多いと思う。 そこで、大活躍するのが(w)セルの結合機能だと思う。 多くのExcel使いは、データを蓄積するためのシートで見栄えをよくするためにセル…

isAutoFilteredメソッドの修正

isAutoFilteredメソッドの欠陥 isAutoFilteredメソッドとは 自作のFunction。 akashi-keirin.hatenablog.com このときに作ったもの。 こんなふうにフィルターで絞り込まれていないときにFalseを返す。 イミディエイト・ウインドウに ?isAutoFiltered(Sheet1)…

半角カタカナを全角ひらがなに変換する(StrConv関数)

半角カタカナと戦う(StrConv関数) 名簿のふりがな欄 いろんな名簿を作る必要があって、着手してから気がついた。 名簿のふりがな欄、ふりがなの付け方めちゃくちゃやんけ! ある名簿は全角ひらがな。またある名簿は半角カタカナ。 んで、StrConv関数を使っ…

Document_Closeイベントで差込データソースとの接続を切断する

Document_Closeイベントの挙動 差し込み印刷の設定をしているドキュメントは、一旦閉じると、次回起動時に自動的に前回接続していたデータソースに接続しようとする。 これはこれで親切機能なのだが、何も知らない人が差し込み設定をしたドキュメントを別の…

「標準モジュール」とは何ものなのか

「標準モジュール」とは何ものなのか 割と最近まで、「標準モジュール」というのは、単に【コードを書く場所】ぐらいの雑なとらえ方で済ませていた。 しかし、「クラスモジュール」とか、「フォームモジュール」、「シートモジュール」、「ThisWorkbookモジ…

配列変数を値渡しにする

値渡しの配列引数 配列引数を値渡しにする方法 akashi-keirin.hatenablog.com このときにも書いたとおり、通常、プロシージャの引数に配列を渡すとき、 Public Sub hogehoge(ByVal foo() As String) みたいにすると、 こんなエラーが出る。 ところが、VBA四…

VirtualTableクラスは今

VirtualTableクラスは今 VirtualTableクラスの現状 VLOOKUPにせよ、INDEX & MATCHの合わせ技にせよ、セルに数式がずらずらと書き込まれているというのはちょっとイヤなので、表引きは極力VBAでやっている。 んで、VLOOKUPみたいな働きを持ったクラスを作った…