Sample Macro  セル制御 [応用型] Previous Next

1) セルの色を調べる このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub セルの色を調べる()
    Sheets("SSS").Select                             '※1
    メッセージ = "A1のように入れてください"
        タイトル = "調べたいセル?"
        セル = InputBox(メッセージ, タイトル)           'インプットボックスで入力
    色番号 = Range(セル).Interior.ColorIndex            '色番号を調べる
    タイトル = セル & "セルの色番号は"
        If 色番号 = -4142 Then
            メッセージ = "なし(-4142)"
        Else
            メッセージ = 色番号
        End If
        メッセージ = メッセージ & "です"
        スタイル = vbInformation
        MsgBox メッセージ, スタイル, タイトル           'メッセージボックスで答える
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入
※2 シートのレイアウトは下図のとおり、上記マクロはこのシート内のセル番号を入力する前提
サンプルシート


2) セルの色を置換する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub セルの色を置換する()
    旧色 = 4                                    '※1
    新色 = 6                                    '※1
    Application.FindFormat.Interior.ColorIndex = 旧色
    Application.ReplaceFormat.Interior.ColorIndex = 新色
    Cells.Replace What:="", Replacement:="", SearchFormat:=True, ReplaceFormat:=True
End Sub
'=================================================================================
<コメント>
※1 4、6にはカラーパレットのインデックス番号(上図参照)を記入


3) セルに数式があれば値に置換 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 選択セル範囲の各セルに数式があれば値に置換する()
Dim セル範囲, 各セル
    Set セル範囲 = Application.InputBox(Prompt:="セル範囲を選択してください", Type:=8)
    For Each 各セル In セル範囲                 'セル範囲内の各セルについて
        If 各セル.HasFormula = True Then        '数式が入力されていれば
            各セル.Value = 各セル.Value
        End If
    Next                                        '繰り返す
End Sub
'=================================================================================


4) セルの内容が空白でないなら処理する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub セルの内容が空白でないなら処理する()
    列 = 1                                      '調査対象セルの列番号
    For 行 = 1 To 10                            '行番号1から始め10まで(反復時は1アップ)
        If Cells(行, 列) <> "" And Cells(行, 列) <> " " And Cells(行, 列) <> " " Then '空
                                                白セルなら ※1
            MsgBox 行 & "行目は、空白でないので処理します"
        End If
    Next                                        '繰り返す(Forへ戻る)
End Sub
'=================================================================================
<コメント>
※1 ""は、Null文字列または長さが0の文字列と呼ばれ、セルを選択して[Delete]キーを押した場合


5) セルが結合されているか調べる このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub セルが結合されているか調べる()
    Worksheets("SSS").Activate                  '※1
    Set 調査対象セル = Application.InputBox(prompt:="マウスでセルを選択してください。" _
        , Title:="結合されているか調査", Type:=8)
    If 調査対象セル.MergeCells Then
        MsgBox 調査対象セル.Address & "セルとして結合されています。"
    Else
        MsgBox 調査対象セル.Address & "セルは結合されていません。"
    End If
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入


6) 文字列を追加しその一部分を斜体にする このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 文字列を追加しその一部分を斜体にする()
    With Range("B1")                            'アクティブシートの指定セル ※1
        .Value = "普通と斜体"
        .Characters(4, 2).Font.Italic = True    '4文字目から2文字を斜体に
    End With
    With Worksheets("SSS").Range("B1")          '指定シートの指定セル ※1,2
        .Value = "斜体と普通"
        .Characters(1, 2).Font.Italic = True
    End With
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入
※2 B1にはセル番号を記入



7) セルのフォントが太字か調べる このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub セルのフォントが太字か調べる()
    セル = "A1"                                 '※1
    If Range(セル).Font.Bold = True Then        '※2
        MsgBox "太字です"
    Else
        MsgBox "太字ではありません"
    End If
End Sub
'=================================================================================
<コメント>
※1 A1にはセル番号を記入
※2 BoldをItalicにすると車体になる

Excel VBA Macro




VBAの本 こちら





マクロ本 こちら





Excel本 こちら