|
Sample Macro セル制御 [応用型] |
 |
|
|
|
1) セルの色を調べる |
 |
 |
'=========================================================================================
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) セルの色を置換する |
 |
 |
'=========================================================================================
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) セルに数式があれば値に置換 |
 |
 |
'=========================================================================================
Sub 選択セル範囲の各セルに数式があれば値に置換する()
Dim セル範囲, 各セル
Set セル範囲 = Application.InputBox(Prompt:="セル範囲を選択してください", Type:=8)
For Each 各セル In セル範囲 'セル範囲内の各セルについて
If 各セル.HasFormula = True Then '数式が入力されていれば
各セル.Value = 各セル.Value
End If
Next '繰り返す
End Sub
'=========================================================================================
|
4) セルの内容が空白でないなら処理する |
 |
 |
'=========================================================================================
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) セルが結合されているか調べる |
 |
 |
'=========================================================================================
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) 文字列を追加しその一部分を斜体にする |
 |
 |
'=========================================================================================
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) セルのフォントが太字か調べる |
 |
 |
'=========================================================================================
Sub セルのフォントが太字か調べる()
セル = "A1" '※1
If Range(セル).Font.Bold = True Then '※2
MsgBox "太字です"
Else
MsgBox "太字ではありません"
End If
End Sub
'=========================================================================================
<コメント>
※1 A1にはセル番号を記入
※2 BoldをItalicにすると車体になる
|