ちょっとした小技

文字列分割プロシージャ(泣き別れ防止)

住所などの長い文字列を印刷する場合、適度な長さで分割して複数行にすることがよくあります。 その場合、単純に文字の長さだけで分割すると、変な位置で切れてしまって見栄えがよくありません。 そういうときのために、適切な位置で切るプロシージャを用意…

テキストファイル(UTF-8)の作成

シート上の一定のセル範囲にあるデータを UTF-8(Uni-Code) のテキストデータとして出力するマクロのサンプルです。 ただそれだけです。 ' # 参照設定:Microsoft ActiveX Data Objects 2.8 Library Public Sub Main() Const cFilename As String = "TESTOUT.…

数式表示関数

以前に MOUG の回答で作ったユーザー定義関数です。 一言で言うと、数式の中身を見るための関数です。 例えば、セルA1 に数式が入っているとします。 そのときに、この関数を使って =FormulaValue(A1) とすると、セルの参照先を見て数式で使っている値を表示…

飛び飛びのオートフィルタ

オートフィルタは連続した列に対して設定するもので、A列とC列だけに設定するってことは普通はしません。 でも、やる方法はないこともないです。 まず、オートフィルタをかけておきます。 次に↓の Macro1 でオートフィルタのドロップダウンの名前を取得し…

Shape のみロック

セルには入力できるけど、Shapeが触れないシートを作る方法です。 いや、まぁ、単純に"オブジェクト"のみをロックするだけのことなんですけどね。 Sub Macro1() ActiveSheet.Protect DrawingObjects:=True, Contents:=False End Sub これ↑で保護をかけると、…

DrawingObjects … ちまちま vs 一気

DrawingObjects 一族(Buttons や Lines とか)は、ループでちまちまと処理した場合とコレクションに対して一気に処理した場合で結果が違うことがあるようです。 Sub Macro1() Dim i As Object For Each i In ActiveSheet.DrawingObjects i.Delete Next i End …

大きくなぁれ

入力規則のリストの文字サイズやフォームコントロールのチェックや文字サイズって、大きさが決まっていてほいほいと変更できる代物ではありません。 でも、それを大きくしたいという質問がたまにあります。 そんなときに使う小枝・・・じゃなくて、小技です…