Sample Macro  値の操作 [基本型] Previous Next


1) セルに値をセットする このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub アクティブシートのセルに値をセットする()
    Windows("BBB.xls").Activate                 'ブックをアクティブにする ※1
    Sheets("SSS").Select                        'シートを選択する ※2
        Cells(2, 1) = 1                         'A2セルに数字の1をセットする
        Cells(3, 1) = "'002"                    'A3セルに文字の002をセットする ※3
        Range("A4") = 1                         'A4セルに数字の1をセット
        Range("A5") = "'002"                    'A5セルに文字の002をセット ※3
End Sub
'---------------------------------------------------------------------------------
Sub シート名とセルを指定して値をセットする()
    Windows("BBB.xls").Activate                 'ブックをアクティブにする ※1
    Sheets("SSS").Cells(2, 1) = 1               'シートSSSのA2セルに数字の1をセット ※2
    Sheets("SSS").Cells(3, 1) = "'002"       'シートSSSのA3セルに文字の002セット ※2,3
End Sub
'---------------------------------------------------------------------------------
Sub 非アクティブシートのセルに値をセットする()
    Workbooks("BBB.xls").Sheets("SSS").Cells(2, 1) = 1 'ブックBBBのシートSSSのA2セルに
                                                       '数字の1をセット ※1, 2
End Sub
'---------------------------------------------------------------------------------
Sub 任意に規定されたシートのセルに値をセットする()
    Set AAA = Workbooks("BBB.xls").Sheets("SSS")  'ブックBBBのシートSSSをAAAと規定する
                                                  '※1,2,4
        AAA.Cells(2, 1) = 1                     'AAAと規定されたブック、シートのA2セルに
                                                '数字の1をセット
        AAA.Cells(3, 1) = "'002"                'AAAと規定されたブック、シートのA3セルに
                                                '文字の002をセット ※3
End Sub
'=================================================================================
Sub アクティブシートのセルに値をセットする色々な方法()
    Windows(BBB).Activate                       'ブックをアクティブにする ※1
    Sheets("SSS").Select                        'シートを選択する ※2
    値セット_数字型_基本                           '数字をセットする(基本型)
    値セット_数字型_囲み                           '数字をセットする(囲み型)
    値セット_文字型_囲み                           '文字をセットする(基本型)
    値セット_文字型_桁揃                           '文字をセットする(桁揃型)
End Sub
'---------------------------------------------------------------------------------
Sub 値セット_数字型_基本()                      '下記のいずれもその数字がセットされる
    Cells(2, 1) = 1                             '○
    Cells(3, 1).Value = 2                       '◎
    Cells(4, 1).FormulaR1C1 = 3                 '△
    Range("A5") = 4                             '○
    Range("A6").Value = 5                       '◎
    Range("A7").FormulaR1C1 = 6                 '△
    Range("A8").Select: ActiveCell.Value = 7    '○
    Range("A9").Select: ActiveCell.FormulaR1C1 = 8 '△
    Range(Cells(10, 1), Cells(10, 1)) = 9       '○
End Sub
'---------------------------------------------------------------------------------
Sub 値セット_数字型_囲み()                      '下記のいずれも数字がそのままセットされる
    Cells(2, 2) = "001"
    Cells(3, 2).Value = "002"
    Cells(4, 2).FormulaR1C1 = "003"
    Range("B5") = "004"
    Range("B6").Value = "005"
    Range("B7").FormulaR1C1 = "006"
    Range("B8").Select: ActiveCell.Value = "007"
    Range("B9").Select: ActiveCell.FormulaR1C1 = "008"
    Range(Cells(10, 2), Cells(10, 2)) = "009"
End Sub
'---------------------------------------------------------------------------------
Sub 値セット_文字型_囲み()                      '下記のいずれも文字がそのままセットされる
    Cells(2, 3) = "'001"                        '※3
    Cells(3, 3).Value = "'002"
    Cells(4, 3).FormulaR1C1 = "'003"
    Range("C5") = "'004"
    Range("C6").Value = "'005"
    Range("C7").FormulaR1C1 = "'006"
    Range("C8").Select: ActiveCell.Value = "'007"
    Range("C9").Select: ActiveCell.FormulaR1C1 = "'008"
    Range(Cells(10, 3), Cells(10, 3)) = "'009"
End Sub
'---------------------------------------------------------------------------------
Sub 値セット_文字型_桁揃()                      '下記のいずれも文字が桁揃してセットされる
    Cells(2, 4) = "'" & Format$(1, "000")
    Cells(3, 4).Value = "'" & Format$(2, "000")
    Cells(4, 4).FormulaR1C1 = "'" & Format$(3, "000")
    Range("D5") = "'" & Format$(4, "000")
    Range("D6").Value = "'" & Format$(5, "000")
    Range("D7").FormulaR1C1 = "'" & Format$(6, "000")
    Range("D8").Select: ActiveCell.Value = "'" & Format$(7, "000")
    Range("D9").Select: ActiveCell.FormulaR1C1 = "'" & Format$(8, "000")
    Range(Cells(10, 4), Cells(10, 4)) = "'" & Format$(9, "000")
End Sub
'=================================================================================
<コメント>
※1 BBBにはブック名を記入
※2 SSSにはシート名を記入
※3 ""で囲まれた中に文字を書く場合は 'は不要
※4 AAAは自由にネーミング


2) セルの値を取り出す このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub アクティブシートのセルの値を取り出す()
    Windows("BBB.xls").Activate                 'ブックをアクティブにする ※1
    Sheets("SSS").Select                        'シートを選択する ※2
        年 = Cells(2, 1)                        'A2セルの値を取り出す ※3
        月 = Cells(2, 2)                        'B2      〃        ※3
        日 = Cells(2, 3)                        'C2      〃        ※3
End Sub
'---------------------------------------------------------------------------------
Sub 同じブックの他のシートのセルの値を取り出す()
    Windows("BBB.xls").Activate                 'ブックをアクティブにする ※1
    Sheets("SSS").Select                        '"SSS"シートを選択する ※2
        年 = Sheets("TTT").Cells(2, 1)          '"TTT"シートのA2セルの値を取り出す ※4
        月 = Sheets("TTT").Cells(2, 2)          '     〃     B2      〃        ※4
        日 = Sheets("TTT").Cells(2, 3)          '     〃     C2      〃        ※4
End Sub
'---------------------------------------------------------------------------------
Sub セルに入力された値と表示された値を取得する()
    Windows("BBB.xls").Activate                 'ブックをアクティブにする ※1
    Sheets("SSS").Select                        'シートを選択する ※2
    入力された値 = Range("A1").Value             '※5
    表示された値 = Range("A1").Text              '※5
    日付シリアル値 = Range("A1").Value2          '※10
End Sub
'---------------------------------------------------------------------------------
 ダブルクリックされたセルの値を取得する        '※6
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ダブルクリックされたセルの値 = Target.Value 'ダブルクリックされたセルの値を取得する
    Cancel = True                               'イベントを無効にする
End Sub
'=================================================================================
Sub セル内改行文字を含んだセルの値を分けて取得する() '※7
    セル = "A1"                                 '※8
    値1 = Split(Range(セル).Value, vbLf)(0)
    値2 = Split(Range(セル).Value, vbLf)(1)
    値3 = Split(Range(セル).Value, vbLf)(2)
End Sub
'=================================================================================
Sub セルの値を配列に取得し配列の値をセルに設定する()
Dim 配列() As Variant
    取得セル範囲 = "A1:C4"                      '※9
    設定セル範囲 = "A11:C14"                    '※9
    配列 = Range(取得セル範囲).Value            'セルの値を配列に取得
    Range(設定セル範囲).Value = 配列            '配列の値をセルに設定
End Sub
'=================================================================================
<コメント>
※1 BBBにはブック名を記入
※2 SSSにはシート名を記入
※3 年,月,日は変数名で自由にネーミング
※4 "TTT"には同じブックの他のシート名を記入
※5 下図のように書式設定されたセルでは、入力された値と、表示された値が異なる
   
※6 ワークシートのコード画面で作成する
※7 ここで言う「セル内改行文字」とはラインフィード文字(vbLf)
※8 A1セルに "1行目{Alt}+{Enter}2行目{Alt}+{Enter}3行目" と入力されている場合、
   変数「値1」は "1行目"、変数「値2」は "2行目"、変数「値3」は "3行目" となる
※9 A1:C4 には取得するセル範囲、A11:C14 には設定するセル範囲を記述
※10 日付型または通貨型で書式設定されているセルの場合はValueプロパティと異なる値となる
   たとえば、上図のA1セルの場合は 39207 (日付シリアル値) が返る


3) セル間で値を写す このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 同じブックの異なるシート間でセルの値を写す()
    Windows("BBB.xls").Activate                 'ブックをアクティブにする ※1
    Sheets("SSS").Cells(2, 1) = Sheets("TTT").Cells(2, 1)
                                        '"TTT"から"SSS"シートへA2セルの値を写す ※2,3
    Sheets("SSS").Cells(2, 2) = Sheets("TTT").Cells(2, 2)
                                        '"TTT"から"SSS"シートへB2      〃     ※2,3
    Sheets("SSS").Cells(2, 3) = Sheets("TTT").Cells(2, 3)
                                        '"TTT"から"SSS"シートへC2      〃     ※2,3
End Sub
'=================================================================================
<コメント>
※1 BBBにはブック名を記入
※2 SSSにはシート名を記入
※3 "TTT"には同じブックの他のシート名を記入


4) セルの数式を値として取得する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub セルの数式を値として取得する()
    数式セル = "A3"                             '※1
    値セル = "B3"
    数式 = Range(数式セル).Formula              '※2 変数に代入する場合
    Range(値セル).Value = "'" & Range(数式セル).Formula '※2 セルにセットする場合
End Sub
'=================================================================================
<コメント>
※1 A3セルに =SUM(A1:A2) のような数式がセットされている前提
※2 FormulaR1C1 とすれば R1C1形式の数式になる


5) 指定回数繰り返した文字列を作る このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 文字列を指定回数繰り返した文字列を作成する()
    文字列 = "★☆"                             '※1
    回数 = 5                                    '※2
    作成文字列 = Application.WorksheetFunction.Rept(文字列, 回数)
End Sub
'---------------------------------------------------------------------------------
Sub 文字を指定数だけ並べた文字列を作成する()
    文字 = "☆"                                 '※3
    指定数 = 5                                  '※2
    文字列 = String(指定数, 文字)
End Sub
'=================================================================================
<コメント>
※1 1文字以上の文字列を指定
※2 正の数値で記入する(整数でない場合は小数点以下が切り捨てされる)
※3 複数の文字を指定しても先頭の文字だけが対象になる
サンプルブックのダウンロードは ここをクリック (YNxv208_REPT.xls 38KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


6) データバー的な文字列をセルに作成 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub データバー的な文字列をセルに作成する()
    セル = "A1"
    数値 = 15
    Range(セル).Font.Name = "Haettenschweiler"
    Range(セル).Value = Application.WorksheetFunction.Rept("|", 数値)
End Sub
'=================================================================================
   


7) 文字列の文字数を取得する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 文字列の文字数を取得する()
    Range("A1") = "永井善王": Range("A2") = "1234": Range("A3") = "3行" 'テストデータ
    MsgBox "A1セルの文字数は " & Len(Range("A1").Value)
    MsgBox "A2セルは " & Len(Range("A2").Value)
    MsgBox "A3セルは " & Len(Range("A3").Value)
End Sub
'---------------------------------------------------------------------------------
Sub 文字列の半角換算文字数を取得する()
    Range("A1") = "永井善王": Range("A2") = "1234": Range("A3") = "3行" 'テストデータ
    MsgBox "A1セルの半角換算文字数は " & LenB(StrConv(Range("A1").Value, vbFromUnicode))
    MsgBox "A2セルは " & LenB(StrConv(Range("A2").Value, vbFromUnicode))
    MsgBox "A3セルは " & LenB(StrConv(Range("A3").Value, vbFromUnicode))
End Sub
'---------------------------------------------------------------------------------
Sub 文字列のバイト数を取得する()
    Range("A1") = "永井善王": Range("A2") = "1234": Range("A3") = "3行" 'テストデータ
    MsgBox "A1セルのバイト数は " & LenB(Range("A1").Value)
    MsgBox "A2セルは " & LenB(Range("A2").Value)
    MsgBox "A3セルは " & LenB(Range("A3").Value)
End Sub
'=================================================================================


8) 文字列が条件を満たすか調べる このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 文字列が1桁の数字か調べる()
    文字列 = "1"                                '※1
    If 文字列 Like "#" = True Then              '※2
        MsgBox "1桁の数字です。", , "すぐマク"
    End If
End Sub
'---------------------------------------------------------------------------------
Sub 文字列が3桁の数字か調べる()
    文字列 = "123"                              '※1
    If 文字列 Like "###" = True Then MsgBox "3桁の数字です。", , "すぐマク" '※2
End Sub
'=================================================================================
Sub 文字列の頭文字が範囲内の数値か調べる()
    文字列 = "37"                               '※1
    頭文字範囲 = "[2-4]*"                       '※6、7、8
    If 文字列 Like 頭文字範囲 Then MsgBox "範囲内の数値です。", , "すぐマク"
End Sub
'---------------------------------------------------------------------------------
Sub 文字列の末尾が所定の文字か調べる()
    文字列 = "幸田町"                           '※1
    末尾文字 = "*[町,村]"                       '※6、7、8
    If 文字列 Like 末尾文字 Then MsgBox "所定の文字です。", , "すぐマク"
End Sub
'---------------------------------------------------------------------------------
Sub 文字列に所定文字を含むか調べる()
    文字列 = "東京都三宅村"                     '※1
    文字列 = "東京都港区"                       '※1
    所定文字 = "*都*区"                         '※6、7、8、9
    If 文字列 Like 所定文字 Then
        MsgBox "所定文字を含みます。", , "すぐマク"
    Else
        MsgBox "所定文字を含みません。", , "すぐマク"
    End If
End Sub
'=================================================================================
Sub 文字列が1桁の半角英字か調べる()
    文字列 = "a"                                '※3
    If 文字列 Like "[A-Z]" = True Or 文字列 Like "[a-z]" = True Then '※4
        MsgBox "1桁の半角英字です。", , "すぐマク"
    End If
End Sub
'---------------------------------------------------------------------------------
Sub 文字列が1桁の全角英字か調べる()
    文字列 = "a"                               '※3
    If 文字列 Like "[A-Z]" Or 文字列 Like "[a-z]" Then '※5
        MsgBox "1桁の全角英字です。", , "すぐマク"
    End If
End Sub
'=================================================================================
<コメント>
※1 変数「文字列」には決められた桁数の任意の文字を代入する(全角も可)
※2 全角数字でも条件満足する
※3 変数「文字列」には1桁の任意の文字を代入する(全角も可)
※4 半角の大文字・小文字とも条件満足するように or演算子を使って組み立てている
※5 全角の      〃                 〃
※6 Like演算子はワイルドカード(*、?、等)が使用可能
※7 []内の区切りはand条件なら「-」、or条件なら「,」
※8 2-4 または 町,村 は例示
※9 * は数カ所に挿むことも可能


9) 文字列の一部を置換する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Private Sub 文字列の一部を置換する()
    文字列 = "ABCDEFGAB"
    検索文字列 = "AB"
    置換文字列 = "ZZ"
    検索開始位置 = 1
    文字列 = Replace(文字列, 検索文字列, 置換文字列, 検索開始位置)
End Sub
'=================================================================================
<コメント>
※1 これから置換する文字列を含む文字列を指定する
※2 置換する文字列を指定


10) ワイルドカード文字で検索して置換 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Private Sub ワイルドカード文字で検索して置換する()
    Set 指定範囲 = Range("B1:K1")               '※1 セル範囲で指定する例
    検索文字列 = "*月"                          '※2
    置換文字列 = "10月"                         '※3
    指定範囲.Replace What:=検索文字列, Replacement:=置換文字列, LookAt:=xlPart, _
        SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
'=================================================================================
<コメント>
※1 全セルを指定の場合…
Set 指定範囲 = Cells、行番号で指定の場合…Set 指定範囲 = Rows(1)
   列番号で指定の場合…
Set 指定範囲 = Columns(2) のようになる
   (例)
※2 検索する文字列を指定、ワイルドカード文字は *、?、~(チルダ) が使える
※3 置換する文字列を指定、Range("A1") のようにしてもよい


11) アラビア数字をローマ数字に変換 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Private Sub アラビア数字をローマ数字に変換する()
    ローマ数字 = 0                              '※1
    アラビア数字 = Application.Roman(ローマ数字, 0) '※1、※2
End Sub
'=================================================================================
<コメント>
※1 変換したい数字を変数 "ローマ数字" にセットしておく、この場合は「0」
※2 ( )の中の"0"にはローマ数字の書式を数値で指定する、0または省略:正式(古典的書式)


12) 半角数字を漢数字に変換する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 半角数字を漢数字に変換する()
    半角数字 = 123                               '※1
    関数式 = "=NUMBERSTRING(" & 半角数字 & ",1)" '※2
    漢数字 = Evaluate(関数式)
End Sub
'=================================================================================
<コメント>
※1 123 には変換したい数字を記入
※2 NUMBERSTRING関数の第2引数には、1、2、3 があり、
   1の場合…百二十三、 2の場合…壱百弐拾参、 3の場合…一二三 となる


13) 半角数字を丸囲み数字に変換する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 半角数字を丸囲み数字に変換する()
    Worksheets("Sheet3").Activate
    Range("A1:A2").ClearContents
    半角数字 = InputBox("半角数字を入力してください。", "丸囲み数字に変換", "1から50まで")                         '※1
    If 半角数字 >= 21 And 半角数字 <= 35 Then
        ユニコード = 半角数字 + 12881 - 21
        Range("A1").Value = ChrW(ユニコード) '※1
    ElseIf 半角数字 >= 36 And 半角数字 <= 50 Then
        ユニコード = 半角数字 + 12977 - 36
        Range("A1").Value = ChrW(ユニコード) '※1
    ElseIf 半角数字 >= 1 And 半角数字 <= 20 Then
        ユニコード = 11553 - 1 + 半角数字
        ワークシート関数式 = "=CHAR(" & ユニコード & ")" '※2
        Range("A1").Value = Evaluate(ワークシート関数式) '※3
    Else
        MsgBox "変換対象範囲外です。", , "すぐマク"
        Exit Sub
    End If
    Range("A2").Value = ユニコード
End Sub
'=================================================================================
<コメント>
※1 21から50までは、その文字コードに対応する文字をChrW関数で取得する
※2 1から20までは、その文字コードに対応する文字をCHAR関数で取得する
※3 CHAR関数はVisual Basic で使用できるワークシート関数でない(注)ため、
  Evaluateメソッドによっている (注)WorksheetFunctionプロパティではできない


14) カタカナをひらがなに変換する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Private Sub カタカナをひらがなに変換する()
    カタカナ = "ア"                             '※1
    ひらがな = StrConv(カタカナ, vbHiragana)    '※3
End Sub
'---------------------------------------------------------------------------------
Private Sub ひらがなをカタカナに変換する()
    ひらがな = "あイうエお"                     '※2
    カタカナ = StrConv(ひらがな, vbKatakana)    '※3
End Sub
'=================================================================================
<コメント>
※1 変換したいカタカナを変数 "カタカナ" にセットしておく、この場合は「ア」
※2 変換したいひらがな混じりの文字列を変数 "ひらがな" にセットしておく
※3 StrConv関数の名前付き引数conversionの定数と値
定数 内容
vbUpperCase 1 文字列を大文字に変換
vbLowerCase 2 文字列を小文字に変換
vbProperCase 3 文字列の各単語の先頭の文字を大文字に変換
vbWide   (注1) 4 (注1) 文字列内の半角文字(1バイト)を全角文字(2バイト)に変換
vbNarrow  (注1) 8 (注1) 文字列内の全角文字(2バイト)を半角文字(1バイト)に変換
vbKatakana (注2) 16 (注2) 文字列内のひらがなをカタカナに変換
vbHiragana (注2) 32 (注2) 文字列内のカタカナをひらがなに変換
vbUnicode 64 システムの既定のコードページを使って文字列をUnicodeに変換 (注3)
vbFromUnicode 128 文字列をUnicodeからシステムの既定のコードページに変換 (注3)
(注1) 国別情報の設定が日本・中国・韓国の場合に適用される
(注2) 国別情報の設定が日本の場合のみ有効
(注3) Macintoshでは使用できない


15) 文字の大小・全角変換 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 数値以外を全角にする()
    Sheets("SSS").Select                        '※1
    Range("A1") = "123"                         '初期値のサンプル:数値
    Range("A2") = strconv(Range("A1"), vbWide)  'このケースは数値のため全角にならない
    Range("A4") = "AbHアイウ"                      '初期値のサンプル:数値以外
    Range("A5") = strconv(Range("A4"), vbWide)  'この場合は全角になる
    Range("A7") = "愛"                          '初期値のサンプル:全角
    Range("A8") = strconv(Range("A7"), vbWide)  'この場合はもともと全角
    Range("A10") = "123AbHアイウ"                  '初期値のサンプル:数値でない数字と英カナ
    Range("A11") = strconv(Range("A10"), vbWide) 'この場合は全角になる
End Sub
'---------------------------------------------------------------------------------
Sub すべて全角にし小文字を大文字にする()
    Sheets("SSS").Select
    Range("C1") = "123Ab愛"                     '初期値のサンプル:小文字混じり
    Range("C2") = strconv(Range("C1"), vbWide + vbUpperCase)
End Sub
'---------------------------------------------------------------------------------
Sub 文字列中の小文字を大文字に変換する()
    Sheets("SSS").Select
    Range("C4") = "123Ab愛"                     '初期値のサンプル:小文字混じり
    Range("C5") = LCase(Range("C4"))
End Sub
'---------------------------------------------------------------------------------
Sub アルファベットの大文字を小文字に変換する()
    Sheets("SSS").Select
    Range("C7") = "123Ab愛"                     '初期値のサンプル:大文字混じり
    Range("C8") = UCase(Range("C7"))
End Sub
'=================================================================================
Sub 半角の英数カナを全角にする()                '※4
    Worksheets("SSS").Select                    '※1
    Range("B1").FormulaR1C1 = "=DBCS(RC[-1])"   '※5、6
End Sub
'---------------------------------------------------------------------------------
Sub 半角の英数カナを同一セルで全角にする()
    With Worksheets("SSS").Range("A1:A10")      '※1、2
        .Value = Application.Dbcs(.Cells)
    End With
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入
※2 A1、A2、C1などのセル名は適宜記入
※3 StrConv関数の構文: StrConv(変換する文字列式, conversion)
※4 A1セルの半角英数カナがB1セルにセットされたJISワークシート関数で全角に変換された
   
※5 右辺の""中にある DBCS とはワークシート関数の JIS に相当する
※6 Mac版Excel2001では、右辺を "=JIS(RC[-1])" と記述する


16) 英単語の先頭文字を大文字に変換 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 英単語の先頭文字を大文字に変換する()
    セル = "A1"                                 '※1
    式 = "PROPER(" & セル & ")"
    MsgBox Evaluate(式)
End Sub
'=================================================================================
<コメント>
※1 ""内には変換対象のセル名を記入


17) スペースを削除する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 先頭末尾のスペースを削除する()
    Sheets("SSS").Select
    Range("E1") = "  123  Ab 愛  "              '初期値のサンプル
    Range("E2") = LTrim(Range("E1"))            '先頭のスペース削除
    Range("E3") = RTrim(Range("E1"))            '末尾のスペース削除
    Range("E4") = Trim(Range("E1"))             '先頭末尾のスペース削除
End Sub
'---------------------------------------------------------------------------------
Sub 選択されたセルのスペースをすべて削除する()
    Sheets("SSS").Select
    Range("G1") = "1 2 3 A b 愛"                '初期値のサンプル
    Cells.Replace what:=" ", replacement:=""    'スペースを削除する
End Sub
'---------------------------------------------------------------------------------
Sub すべてのセルの先頭と末尾のスペースを削除する()
    For Each セル In ActiveSheet.UsedRange      '現在シートの使われたセル範囲の各セルの
        セル.Value = Trim(セル.Value)           '先頭と末尾の両方のスペースを削除する
    Next                                        '繰り返す
End Sub
'=================================================================================


18) スペースを付けて文字数を揃える このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub スペースを末尾に付けて文字数を揃える()
    上端行 = 2                                  '元データが入っている上端行 ※1
    元データ列 = 1                              '元データが入っている列名 ※2
    答データ列 = 2                              '答データを格納する列名 ※3
    仕上文字数 = 10                             '答を仕上げる文字数 ※4
    下端行 = Range(Cells(65536, 元データ列), Cells(65536, 元データ列)).End(xlUp).Row '※5
    For 行 = 上端行 To 下端行
        長さ = 仕上文字数 - Len(Cells(行, 元データ列))
        Cells(行, 答データ列) = Cells(行, 元データ列) & Space(長さ)
        Cells(行, 答データ列 + 1) = Cells(行, 元データ列) & Space(長さ) & "." '※6
    Next
End Sub
'=================================================================================
<コメント>
※1 2には元データが入っている上端行(見出し行を除く)番号を記入
※2 1には元データが入っている列名を数字で記入
※3 2には答データを格納する列名を数字で記入
※4 10には答を仕上げる文字数を記入
※5 このコードはExcel97以上用(Excel95なら65536を16384に変更する)
※6 答を分かりやすく表示するために末尾に '.' を付けた例示
サンプルシート


19) スラッシュを除去する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub スラッシュを除去する()
    Worksheets("SSS").Activate                          '※1
    Range("A2:A30").Select                              '※2
    Selection.Replace What:="/", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False         '※3 置換する
End Sub
'=================================================================================
<コメント>
※1 "SSS"には、ワークシートの名前を記入する
※2 A2:A30には除去するデータのセル範囲を記入
※3 What:="/"でスラッシュを指定し、Replacement:=""でヌルに置換している


20) ダブルクォーテーションマークを削除 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 全角のダブルクォーテーションマークを削除する()
    元の文字列 = Range("A1").Value                    '※1
    削除後文字列 = Replace(元の文字列, Chr(&H8168), "") '※2
End Sub
'=================================================================================
<コメント>
※1 A1セルの値のサンプル … ABC ”全角” DE
※2 &H8168 … ”


21) 制御文字を削除する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub セル内の改行を削除する()
    Worksheets("SSS").Activate                          '※1
    Range("A2:A30").Select                              '※2
    Selection.Replace What:=vbLf, Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False         '※3 置換する
End Sub
'---------------------------------------------------------------------------------
Sub セル内の制御文字を削除する()
    セル = "A2"                                         '※2
    ワークシート関数式 = "=CLEAN(" & セル & ")"
    削除後文字列 = Evaluate(ワークシート関数式)            '※4
End Sub
'=================================================================================
<コメント>
※1 "SSS"には、ワークシートの名前を記入する
※2 A2:A30またはA2には削除するデータのセル範囲を記入
※3 What:=vbLFでセル内の改行を指定し、Replacement:=""でヌルに置換している
※4 CLEAN関数で削除できる制御文字とは ASCIIコードの先頭32文字(値0~31)のことであり、
   Unicode文字セットで追加された印刷されない文字(値 127、129、141、143、144、157)は
   削除されない


22) インプットボックス 入力、初期値、表示位置 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Option Explicit
Dim 入力値 As Variant                           'InputBoxで入力された値
Dim 初期値 As String                            'InputBoxへ表示する初期値
Dim 水平位置 As Integer                         'InputBoxを表示する水平方向の距離
Dim 垂直位置 As Integer                         'InputBoxを表示する垂直方向の距離
Dim タイプ As Variant                           'InputBoxメソッドで返されるデータの型
Dim セル範囲 As Range                           'InputBoxメソッドで入力されたセル範囲
Const タイトル = "インプットボックスのタイトル"      'InputBoxへ表示するタイトル
Const メッセージ = "入力してください。"             'InputBoxへ表示するメッセージ
Const 案内文 = "マウスでセル範囲を選択してください。" 'InputBoxへ表示するメッセージ
'---------------------------------------------------------------------------------
Sub インプットボックスで入力する()                  'InputBox関数にて
    入力値 = InputBox(メッセージ, タイトル)         '※1
    If StrPtr(入力値) = 0 Then                      '※8、10
        MsgBox "[キャンセル] または [×]ボタンがクリックされたか、" & vbCr & _
            "[Esc]キーが押されました。", , "すぐマク"
    ElseIf 入力値 = "" Then
        MsgBox "何も入力されずに[OK]ボタンがクリックされたか[Enter]キーが押されました。" _
            & vbCr, , "すぐマク"
    Else
        MsgBox 入力値 & " と入力されました。", , "すぐマク"
    End If
End Sub
'---------------------------------------------------------------------------------
Sub インプットボックスで数値である文字列を入力する() 'InputBox関数にて
    入力値 = InputBox(メッセージ, タイトル)         '※1
    If StrPtr(入力値) = 0 Then                      '※8、10
        MsgBox "[キャンセル] または [×]ボタンがクリックされたか、" & vbCr & _
            "[Esc]キーが押されました。", , "すぐマク"
    ElseIf 入力値 = "" Then
        MsgBox "何も入力されずに[OK]ボタンがクリックされたか[Enter]キーが押されました。" _
            & vbCr, , "すぐマク"
    Else
        If IsNumeric(入力値) Then
            MsgBox "入力された数値である文字列 … " & 入力値, , "すぐマク"
        Else
            MsgBox "入力された数値でない文字列 … " & 入力値, , "すぐマク"
        End If
    End If
End Sub
'=================================================================================
Sub インプットボックスへ初期値を表示する()          'InputBox関数にて
    初期値 = "愛知県"
    入力値 = InputBox(メッセージ, タイトル, 初期値) '※1、2
End Sub
'=================================================================================
Sub インプットボックスの表示位置を設定する()        'InputBox関数にて
    水平位置 = 1440                             '※3
    垂直位置 = 567                              '※4
    入力値 = InputBox(メッセージ, タイトル, , 水平位置, 垂直位置) '※1
End Sub
'---------------------------------------------------------------------------------
Sub インプットボックスの表示位置を設定する_2()      'InputBox関数にて
    入力値 = InputBox(prompt:="お客様名を入力してください。", _
        Title:="新規作成", XPos:=4500, YPos:=4000)
End Sub
'=================================================================================
Sub インプットボックスで文字列を入力する()          'InputBoxメソッドにて
    入力値 = Application.InputBox("入力してください")
    If VarType(入力値) = vbString Then         '※5
        MsgBox "入力された文字列 … " & 入力値, , "すぐマク"
    Else
        MsgBox "[キャンセル]または[×]がクリックされました。", , "すぐマク"
    End If
End Sub
'---------------------------------------------------------------------------------
Sub IMEがオンでなければオンにしてからInputBoxを表示する() 'InputBox関数にて
    If IMEStatus = vbIMEModeOff Then
        SendKeys "{kanji}"                          '※9 [全角/半角]キー
        入力値 = InputBox("日本語入力です。")
        SendKeys "{kanji}"
    Else
        入力値 = InputBox("日本語入力です。")
    End If
End Sub
'---------------------------------------------------------------------------------
Sub IMEをオンにしてInputBoxを表示する()                 'InputBox関数にて
    Application.ScreenUpdating = False
    With Worksheets.Add                             '(仮の)ワークシートを挿入
        ActiveCell.Validation.Add Type:=xlValidateInputOnly '入力規則を追加
        ActiveCell.Validation.IMEMode = xlIMEModeOn '入力規則のIMEモードを[ひらがな]に
        入力値 = InputBox("日本語入力です。")
        Application.DisplayAlerts = False
        .Delete                                     '(仮の)ワークシートを削除
        Application.DisplayAlerts = True
    End With
    Application.ScreenUpdating = True
End Sub
'=================================================================================
Sub インプットボックスで数値である文字列を入力する() 'InputBoxメソッドにて
    入力値 = Application.InputBox("入力してください")
    If VarType(入力値) = vbString Then              '※5
        If IsNumeric(入力値) Then
            MsgBox "入力された数値である文字列 … " & 入力値, , "すぐマク"
        Else
            MsgBox "入力された数値でない文字列 … " & 入力値, , "すぐマク"
        End If
    Else
        MsgBox "[キャンセル]または[×]がクリックされました。", , "すぐマク"
    End If
End Sub
'---------------------------------------------------------------------------------
Sub インプットボックスの入力値が日付型データか判定する() 'InputBoxメソッドにて
    メッセージ = "日付を入力してください。"
    タイトル = "すぐマク"
    入力値 = Application.InputBox(prompt:=メッセージ, Title:=タイトル, Type:=2)
    If IsDate(入力値) = True Then
        MsgBox 入力値 & " は日付型の文字列です。", , タイトル
    Else
        MsgBox 入力値 & " は日付型文字列ではありません。", , タイトル
    End If
End Sub
'=================================================================================
Sub インプットボックスでセル範囲を入力する()             'InputBoxメソッドにて
    タイプ = 8                                      'セル参照(Rangeオブジェクト)
    Set セル範囲 = Application.InputBox(prompt:=案内文, Title:=タイトル, Type:=タイプ)
End Sub
'=================================================================================
<コメント>
※1 「入力値」はInputBoxで入力された値を格納する変数、変数名は自由(以下同じ)
※2 「初期値」はInputBoxへ表示するための初期値を格納する変数
※3 「水平位置」はInputBoxを表示する水平方向の距離(省略すると画面中央)、
   単位は twip(トゥウィップ、1440twips=1インチ、567twips=約1cm)
※4 「垂直位置」はInputBoxを表示する垂直方向の距離(省略すると画面上端から約 1/3の位置)
※5 VarType関数で変数の内容(vbString, vbBoolean)を取得して判別
※6 「セル範囲」はInputBoxメソッドで入力されたセル範囲
※7 「タイプ」でInputBoxメソッドで返されるデータの型を設定
意味 意味 意味
0 数式 1 数値 2 文字列(テキスト)
4 論理値(TrueまたはFalse) 8 セル参照 (Range オブジェクト) 16 #N/Aなどのエラー値
64 数値配列        
   InputBox関数で入力した値は文字列、InputBoxメソッドは引数Typeで指定したデータ型
※8 [キャンセル]した時の戻り値: InputBox関数は値0の文字列(vbNullString)、
   InputBoxメソッドはFalse
※9 [かな入力]が[ローマ字入力]に切り替わる場合がある
※10 StrPtr関数は非表示メンバ
サンプルブックのダウンロードは ここをクリック (YNxv208_InputBox.xls 40KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


23) データフォームを表示する このページのトップへ もくじへ 使用可能なExcelのバージョン
'================================================
Sub データフォームを表示する()
    ActiveSheet.ShowDataForm                '※1
End Sub
'================================================
Sub データフォームを表示する_Excel4マクロ()
    Range("A2").Select                      '※2
    ExecuteExcel4Macro "DATA.FORM()"
End Sub
'================================================
<コメント>
※1 リストの左上端がA1セルであること
   日付は表示形式 "m/d/yyyy" で入力される
※2 リストの左上端としてA1以外のセルを指定できる
   日付は表示形式 "yyyy/m/d" で入力される


24) ふりがな このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub PHONETICでふりがなの文字列を取り出す()
Dim ふりがな As String
Dim 取出元範囲 As Range                         '※1
Dim 行 As Long
Dim 列 As Integer

    列 = 4                                      '※2
    行 = 1                                      '※3
    Set 取出元範囲 = Range(Cells(行, 列), Cells(行, 列))
    ふりがな = Application.WorksheetFunction.Phonetic(取出元範囲)
    Range(Cells(行, 5), Cells(行, 5)).Value = ふりがな
End Sub
'---------------------------------------------------------------------------------
Sub ふりがなを作成する()                        'SetPhoneticメソッドを利用する方法
    Range("G9").SetPhonetic
End Sub
'=================================================================================
Sub ふりがなを表示する()                        'Phoneticsプロパティを利用する方法
    Range("G9").Phonetics.Visible = True     '※4、5
End Sub
'=================================================================================
Sub ふりがなを削除する()
    Range("G9").Phonetics.Delete
End Sub
'---------------------------------------------------------------------------------
Sub ふりがなを削除する_裏技()
    Range("G9").Value = Range("G9").Value
End Sub
'=================================================================================
Sub すべてのふりがなを取得する()
    フリガナ = Application.GetPhonetic("国")    '※6
    While フリガナ <> ""
        MsgBox フリガナ
        フリガナ = Application.GetPhonetic()
    Wend
End Sub
'---------------------------------------------------------------------------------
Sub ふりがなをひらがなで取得する()
    ふりがな = StrConv(Application.GetPhonetic("国"), vbHiragana)    '※6
End Sub
'---------------------------------------------------------------------------------
使用可能なExcelのバージョン
'---------------------------------------------------------------------------------
Sub ふりがなを取得する()                        'Phoneticプロパティを利用する方法
    MsgBox "D9セルのふりがなは " & Range("D9").Phonetic.Text
End Sub
'=================================================================================
Sub ふりがなの表示または非表示()
    Range("G9").Phonetic.Visible = True         '表示する
    Range("G9").Phonetic.Visible = False        '非表示にする
End Sub
'=================================================================================
Sub ふりがなの文字種を設定する()
    Range("G9").Phonetic.CharacterType = xlHiragana 'ひらがな
    Range("G9").Phonetic.CharacterType = xlKatakana 'カタカナ
    Range("G9").Phonetic.CharacterType = xlKatakanaHalf '半角カタカナ
End Sub
'=================================================================================
<コメント>
※1 取り出すセルを指定する変数、必ず As Rangeとする
※2 取り出すセルの列を指定する、この場合は D列となる
※3     〃    行を指定する、この場合は 1行となる
※4 "G9"にはセル範囲を記入
     ※5 非表示にするなら False
※6 "国" はサンプル
サンプルブックのダウンロードは ここをクリック (YNxv208_PHONETIC_1.xls 39KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


25) オートフィルターの基本制御 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Private Sub オートフィルターの状態を調べて表示する()
    If Worksheets("SSS").AutoFilterMode Then    '※1 オートフィルターモードなら
        MsgBox "オートフィルターはオンです。"
    Else
        MsgBox "オートフィルターはオフです。"
    End If
End Sub
'---------------------------------------------------------------------------------
Private Sub オートフィルターの状態を調べて切り替える()
    If Worksheets("SSS").AutoFilterMode Then    'オートフィルターモードなら
        MsgBox "オートフィルターは現在オンです。[OK]ボタンをクリックするとオフにします。"
        オートフィルターのオンオフを切り替える
    Else
        MsgBox "オートフィルターは現在オフです。[OK]ボタンをクリックするとオンにします。"
        オートフィルターのオンオフを切り替える
    End If
End Sub
'---------------------------------------------------------------------------------
Private Sub オートフィルターのオンオフを切り替える()
    Worksheets("SSS").Range("A2").AutoFilter    '※1、2、3
End Sub
'---------------------------------------------------------------------------------
Private Sub オートフィルタモードを解除する()
    Worksheets("SSS").Range("A2").AutoFilterMode = False '※1
End Sub
'---------------------------------------------------------------------------------
Private Sub オートフィルターされていればリストの全ての行を表示する()
    If Worksheets("SSS").AutoFilterMode Then    '※1 オートフィルターモードなら
        MsgBox "オートフィルターは現在オンです。"
        If Worksheets("SSS").FilterMode = True Then 'リストに非表示の行があれば
            MsgBox "現在フィルタされています。" & vbCr & _
                "[OK]ボタンをクリックすると全ての行を表示します。"
            Worksheets("SSS").ShowAllData       '※1 全ての行を表示する
        Else
            MsgBox "オートフィルターは現在オンですがフィルタされていないので" & vbCr _
            & "全ての行が表示されています。"
        End If
    Else
        MsgBox "オートフィルターは現在オフですから、何もしません。"
    End If
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入または、Worksheets("SSS")に代えてActiveSheetとしても可
※2 A2にはリスト内のセル名を記入
※3 オートフィルターがオンの時はリセットされ、オフの時はセットされる
※4 オートフィルターをオンにすると下向き矢印は黒色、フィルタすると青色に変わる
サンプルブックのダウンロードは ここをクリック (YNxv208_AutoFilter.xls 35KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


26) オートフィルターで抽出された件数を表示 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub オートフィルターで抽出された件数を表示する()
    抽出件数 = ActiveSheet.Range("A1").CurrentRegion.Columns(1) _
        .SpecialCells(xlCellTypeVisible).Cells.Count - 1
    MsgBox "抽出件数は " & 抽出件数 & " です"
End Sub
'---------------------------------------------------------------------------------
Sub オートフィルターで抽出された件数を表示する_SUBTOTAL関数()
    ActiveSheet.Range("A1").Select
    抽出件数 = WorksheetFunction.Subtotal(3, Range("A:A")) - 1
    MsgBox "抽出件数は " & 抽出件数 & " です。"
End Sub
'=================================================================================


27) 定数を宣言する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Option Explicit
Public Const 最大行数 As Long = 1               '※1、2、3
Const タイトル As String = "定数の宣言"           '※1、2、3
'---------------------------------------------------------------------------------
Sub 宣言した定数の利用例()
    MsgBox "最大行数は " & 最大行数, vbInformation, タイトル
End Sub
'=================================================================================
<コメント>
※1 「最大行数、タイトル」には任意の定数名を、「1、定数の宣言」には定数の値を記入
※2 Publicを指定すると全てのモジュールから参照可能
   Privateまたは省略すると、宣言したモジュールだけで参照可能
※3 「As long」、「As String」などのデータ型の宣言は省略可能
※4 宣言した定数はマクロの実行中に値を変えることはできない


28) 配列で定数を指定する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Option Explicit
Dim 対象番号 As Variant                         '配列を代入するための変数 ※1
Dim 最小次元 As Long                            '※2
Dim 最大次元 As Long                            '※2
'---------------------------------------------------------------------------------
Sub 配列で定数を指定する()
    対象番号 = Array(1, 4, 6)                   '配列を変数に代入する ※3
    MsgBox 対象番号(2)                          '※4
End Sub
'---------------------------------------------------------------------------------
Sub Array配列の最小最大次元を取得する()
    最小次元 = LBound(対象番号)                 '最小次元を取得する ※5
    最大次元 = UBound(対象番号)                 '最大次元を 〃
End Sub
'=================================================================================
<コメント>
※1 この変数はバリアント型で指定する、変数名「対象番号」は自由にネーミング可能
※2    〃   長整数型で指定する、変数名「最小次元、最大次元」は自由にネーミング可能
※3 Array関数の()の中の引数には、値のリストを , で区切って記入
※4 配列の要素を参照するには、変数名の後の( )の中にインデックス番号を記入
   インデックス番号は 0から始まる(Option Baseステートメントの影響を受けない)
※5 LBoundまたはUBound関数の( )の中には配列変数の名前を記入


29) 日付・日数など・四半期・和西暦 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 指定時間間隔が経過した日付を取得する()
    時間間隔 = "m"                              '※1
    加算日数 = 3                                '※2
    起算日 = "2008/1/31"                        '※3
    加算後日付 = DateAdd(時間間隔, 加算日数, 起算日)
End Sub
'---------------------------------------------------------------------------------
Sub 日数を取得する()
    時間間隔 = "d"                              '※1
    開始日 = "2008/2/28"                        '※3
    終了日 = "2008/3/1"                         '※3
    日数 = DateDiff(時間間隔, 開始日, 終了日)
End Sub
'---------------------------------------------------------------------------------
Sub 指定日が属する四半期を取得する()
    時間間隔 = "q"                              '※1
    指定日 = "2008/2/29"                        '※3
    四半期 = DatePart(時間間隔, 指定日)
End Sub
'=================================================================================
Sub 西暦文字列を和暦文字列に変換する()
    西暦文字列 = "2011/7/31"                    '※4
    和暦文字列 = Format(西暦文字列, "ggge年m月d日")
    Stop
End Sub
'---------------------------------------------------------------------------------
Sub 和暦文字列を西暦文字列に変換する()
    和暦文字列 = "平成23年7月31日"              '※4
    西暦文字列 = Format(和暦文字列, "yyyy年m月d日")
    Stop
End Sub
'=================================================================================
使用可能なExcelのバージョン
'=================================================================================
Sub 指定された月数だけ前または後の日付を取得する()
    開始日 = "2012/1/31"                        '※3
    月数 = 1                                    '※5
    日付シリアル値 = WorksheetFunction.EDate(開始日, 月数) '※6
    取得した日付 = CVDate(日付シリアル値)
End Sub
'=================================================================================
<コメント>
※1 ""内の DateAdd、DateDiff、DatePart関数の引数Intervalの値
設定値 意味 設定値 意味 設定値 意味 設定値 意味 設定値 意味
yyyy yyyy q 四半期 m y 年間通算日 d
w 週日 ww h n s
※2 3には将来の日時を取得するには正の数、過去の日時を取得するには負の数を指定
※3 ""内に年月日を記入するか、Range("A1").Valueのようにセルを指定
※4 ""内に年月日を記入する
※5 開始日より前なら負数、後なら整数で指定
※6 EDate関数の戻り値は日付シリアル値
<参考ページ>
日数と月初曜日を表示
基準日から指定日数経過後の日付の曜日を表示する
月末日を表示する
日付がその年の第何週目に当たるかを表示する


30) 区切り文字で列を分ける このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 区切り文字で列を分ける()
    元データ範囲 = "A1:A3"                      '※1
    Range(元データ範囲).TextToColumns DataType:=xlDelimited, _
        ConsecutiveDelimiter:=True, Space:=True '※2
End Sub
'=================================================================================
<コメント>
※1 1列に限る(分けた頭部がその列、後部は右側の列に順にセットされる)
※2 区切り文字にはタブ(Tab:=True)、セミコロン(Semicolon:=True)、カンマ(Comma:=True)、
   スペース(Space:=True)、および、その他の文字を指定することも可能



31) オートコレクト項目を設定する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub オートコレクト項目に追加する()
    修正文字列 = "."
    修正後の文字列 = ":"
    Application.AutoCorrect.AddReplacement What:=修正文字列, _
        Replacement:=修正後の文字列
End Sub
'---------------------------------------------------------------------------------
Sub オートコレクト項目から削除する()
    修正文字列 = "."
    Application.AutoCorrect.DeleteReplacement What:=修正文字列
End Sub
'---------------------------------------------------------------------------------
Sub オートコレクト項目を検索して置換文字列を表示する()
    検索文字列 = "こんにちわ"
    項目 = Application.AutoCorrect.ReplacementList
    For I = 1 To UBound(項目)
        If 項目(I, 1) = 検索文字列 Then
            MsgBox "修正文字列 '" & 検索文字列 & "' の置換文字列は '" & 項目(I, 2) & _
                "'", , "すぐに役立つエクセルVBAマクロ集"
        End If
    Next
End Sub
'---------------------------------------------------------------------------------
Sub オートコレクト項目の一覧表を作成する()
    ActiveSheet.Cells.Clear
    Range("A1") = "修正文字列"
    Range("B1") = "修正後の文字列(置換文字列)"
    オートコレクト項目 = Application.AutoCorrect.ReplacementList
    For I = 1 To UBound(オートコレクト項目)
        Range("A" & I + 1) = オートコレクト項目(I, 1)
        Range("B" & I + 1) = オートコレクト項目(I, 2)
    Next
    Columns("A:B").EntireColumn.AutoFit
End Sub
'=================================================================================

Excel VBA Macro