flat7th

memo/20120417

created 2012-04-17 modified 2012-04-17 

+ Excel選択範囲のテキストをテキストボックスに

Excel2003 (w で、選択範囲に書いてあるテキストを一発でテキストボックス化するマクロ。

Sub 箱追加(テキスト, 横, 縦, 幅, 高)
    ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 横, 縦, 幅, 高).Select
    Selection.Characters.Text = テキスト
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Orientation = xlHorizontal
        .AutoSize = True
        .AddIndent = False
        .Placement = xlMove
        .PrintObject = True
    End With
    With Selection.Characters(Start:=1, Length:=Len(テキスト)).Font
        .Name = "MS UI Gothic"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    Range("A1").Select
End Sub

Sub 選択範囲のテキストを箱にする()
    If TypeName(Selection) <> "Range" Then
        MsgBox "セルを選択してください"
        Exit Sub
    End If
    テキスト = ""
    横位置 = 10#
    縦位置 = 10#
    幅 = 60#
    高 = 20#
    横ステップ = 0#
    縦ステップ = 20#
    For Each セル In Selection.Cells
        テキスト = セル.Value
        If テキスト <> "" Then
            箱追加 テキスト, 横位置, 縦位置, 幅, 高
            横位置 = 横位置 + 横ステップ
            縦位置 = 縦位置 + 縦ステップ
        End If
    Next
End Sub




メモ帳とかで書いたべたテキストを、図にしたいことがある。そういうときに使うマクロ。

準備
  • このマクロ用のxlsファイルを作り(例:箱つくる.xls)
  • "標準モジュール" にマクロ追加する。
    • ツール - マクロ - Visual Basic Editor を選択、
    • "VBAProject (箱つくる)" を右クリック - 挿入 - 標準モジュール
    • エディタが出るので、ソースをコピペ
  • マクロ "選択範囲のテキストを箱にする" をツールアイコンに設定しておく
    • ツール - ユーザ設定 を選択。
    • ユーザ設定画面、コマンド タブ で
    • マクロ - ユーザ設定ボタン をメニューバーのどこかにドロップし、
    • (ユーザ設定画面)は消さずに
    • 右クリック - マクロの登録 を選択。
    • 範囲選択のテキストを箱にする を選択、OKクリック。

使うとき
  • 目的のExcelファイル と、"箱つくる.xls" を開いておく
  • 目的のExcelファイルのセルにテキストをペーストして、
  • 適当に範囲選択して、
  • ツールアイコンを押下。
  • テキストボックスがポコポコとできるので、
あとはよしなに。


メモ
  • ツール - マクロ - セキュリティ 画面、"セキュリティ レベル" タブ で "中" にしないと動かないかも。
  • Excel 2003 では動いてます。ほかのバージョンはまだ持ってないんです(泣
  • 持論にしたがい、日本語識別子にしてみました。