Excelマクロ「RedFrame」の概要

このマクロは、Excelのワークシート上で現在選択されているセル範囲の周りに赤い枠を作成します。重要なデータを強調したい場合や、セル範囲を目立たせたい場合に便利です。

コード

Sub RedFrame()
    ' RedFrame Macro
    ' Keyboard Shortcut: Ctrl+Shift+R

    ActiveSheet.Shapes.AddShape(msoShapeFrame, Selection.Left, Selection.Top, Selection.Width, Selection.Height).Select

    With Selection.ShapeRange.Line
        .Visible = msoTrue
        .ForeColor.RGB = RGB(255, 0, 0) ' 線の色を赤に設定
        .Transparency = 0 ' 線の透過率を0に設定(不透明)
    End With

    With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(255, 0, 0) ' 塗りつぶしの色を赤に設定(塗りつぶし有効の場合)
        .Transparency = 0 ' 塗りつぶしの透過率を0に設定(不透明)
        .Solid ' 塗りつぶしを単色に設定
    End With

    ' 調整値を設定(具体的な形状の微調整)
    Selection.ShapeRange.Adjustments.Item(1) = 0.02373
    Selection.ShapeRange.Adjustments.Item(2) = 0.01107
End Sub
  

コードの説明

1. マクロの概要

このマクロは、選択されているセル範囲を基に赤い枠を作成します。Excelの操作を簡略化し、視覚的に目立たせるための便利なツールです。キーボードショートカット「Ctrl+Shift+R」で実行できます。

2. 主要なコードの動作

  • ActiveSheet.Shapes.AddShape: 選択されたセル範囲の位置とサイズを基に、フレーム(図形)を追加します。
  • 枠線の設定 (With Selection.ShapeRange.Line): 枠線の表示を有効にし、赤色 (RGB: 255, 0, 0) を適用します。透過率はゼロ(完全に不透明)です。
  • 塗りつぶしの設定 (With Selection.ShapeRange.Fill): 枠の内側に塗りつぶし色を適用します。同様に赤色を指定し、透過率をゼロにしています。
  • 調整値 (Adjustments.Item): フレームの形状を微調整します。この設定により、特定の形状や配置のずれを補正します。

3. 利用シーン

このマクロは以下のような場面で活用できます:

  • ワークシート上で重要なデータを視覚的に強調したい場合。
  • 特定のセル範囲を枠で囲み、目印として使いたい場合。

4. 注意点

以下の点に注意してください:

  • セル範囲を選択していない状態でマクロを実行するとエラーになる可能性があります。実行前に必ずセル範囲を選択してください。
  • フレームの位置やサイズは、選択されたセル範囲に基づきます。

Excelマクロ「changeBG」の概要

このマクロは、Excelのワークシートで選択されたセルの背景色を切り替えるものです。背景色が黄色(コード: 65535)の場合は背景色をなしに、それ以外の場合は黄色に設定します。キーボードショートカット「Ctrl+Shift+H」で実行可能です。

コード

Sub changeBG()
    ' changeBG Macro
    ' Keyboard Shortcut: Ctrl+Shift+H

    Dim selectCell As Range
    ' 選択範囲をselectCellに入れる
    Set selectCell = Selection

    If selectCell.Interior.Color = 65535 Then
        ' 背景色なし
        With Selection.Interior
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    Else
        ' 背景色黄色
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    End If
End Sub
  

コードの説明

1. マクロの概要

選択されたセルの背景色をトグルで変更します。既に黄色の場合は背景色を消去し、そうでない場合は黄色に設定します。操作を簡素化する便利なツールです。

2. 主要なコードの動作

  • Dim selectCell As Range: 現在選択されているセル範囲を変数 selectCell に格納します。
  • If selectCell.Interior.Color = 65535 Then: セルの背景色が黄色 (65535) であるかを判定します。
  • 背景色を消去: 背景色を削除するために .Pattern = xlNone を使用します。
  • 背景色を黄色に設定: 背景色を黄色 (65535) に設定します。

3. 利用シーン

このマクロは以下のような場面で役立ちます:

  • 重要なセルを視覚的に強調したり、目印をつけたりする場合。
  • 背景色のオン・オフを簡単に切り替えたい場合。

4. 注意点

以下の点に注意してください:

  • 複数のセルを選択している場合は、最初のセルが基準になります。
  • 黄色以外の色を利用したい場合は、コード内の .Color = 65535 を変更してください。

Excelマクロ「commentView」の概要

このマクロは、Excelのワークシート上にコメントビュー(吹き出し)を作成し、クリップボードの内容を表示するためのものです。コメントがない場合はデフォルトテキスト「XXXXXXXXXX」を表示します。キーボードショートカット「Ctrl+Shift+W」で実行可能です。

コード

Sub commentView()
    ' commentView Macro
    ' Keyboard Shortcut: Ctrl+Shift+W

    Dim clipBoardData As New DataObject
    ' 吹き出しの初期設定
    ActiveSheet.Shapes.AddShape(msoShapeLineCallout1, Selection.Left, Selection.Top, 213, 70).Select
    With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorBackground1
        .ForeColor.Brightness = 0
        .Transparency = 0
        .Solid
    End With

    ' エラーが起きてもスルーする
    On Error Resume Next
    ' クリップボードからDataObjectにデータを取得する
    clipBoardData.GetFromClipboard
    ' クリップボードの文字を表示する
    Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = clipBoardData.GetText
    If Err.Number <> 0 Then
        ' エラー時にデフォルト文字列を表示する
        Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "XXXXXXXXXX"
    End If
    Err.Clear

    ' 吹き出しの設定の最終調整
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters.ParagraphFormat
        .Alignment = msoAlignCenter
    End With

    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Font
        .NameComplexScript = "MS Pゴシック"
        .NameFarEast = "MS Pゴシック"
        .Name = "MS ゴシック"
        .ForeColor.ObjectThemeColor = msoThemeColorText1
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0
        .Transparency = 0
        .Solid
        .ForeColor.RGB = RGB(0, 0, 0)
    End With

    ' 吹き出しの形状調整
    Selection.ShapeRange.Adjustments.Item(3) = -0.3307
    Selection.ShapeRange.Adjustments.Item(4) = -0.31291
End Sub
  

コードの説明

1. マクロの概要

このマクロは、セルの近くに吹き出しを挿入し、クリップボードのテキストを表示します。クリップボードにテキストがない場合は「XXXXXXXXXX」というデフォルトメッセージを表示します。

2. 主要なコードの動作

  • Dim clipBoardData As New DataObject: クリップボードのデータを取得するためのオブジェクトを初期化します。
  • ActiveSheet.Shapes.AddShape: 吹き出しを選択セルの位置に追加します。
  • With Selection.ShapeRange.Fill: 吹き出しの背景色や透明度を設定します。
  • clipBoardData.GetFromClipboard: クリップボードからテキストを取得します。
  • TextFrame2.TextRange.Characters.Text: クリップボードのテキストを吹き出しに表示します。エラーが発生した場合はデフォルトテキスト「XXXXXXXXXX」を設定します。
  • ParagraphFormat: テキストの配置を中央揃えにします。
  • Font: テキストフォントを「MS ゴシック」に設定し、色を黒にします。
  • Adjustments.Item: 吹き出しの形状を微調整します。

3. 利用シーン

このマクロは以下のような場面で役立ちます:

  • セルに関連するコメントを視覚的に追加したい場合。
  • クリップボードの内容を手軽にセル近くに表示したい場合。

4. 注意点

以下の点に注意してください:

  • クリップボードにテキストがない場合、デフォルト文字列「XXXXXXXXXX」が表示されます。
  • 吹き出しの位置とサイズは固定値ですが、必要に応じて ActiveSheet.Shapes.AddShape の引数を調整してください。

Excel VBAでフォントの色を切り替えるマクロ

以下のコードは、選択したセルのフォント色を切り替えるExcel VBAマクロです。このマクロは、黒色のフォントを特定の色に変更し、それ以外のフォント色を黒に戻す動作を行います。キーボードショートカット (Ctrl + Shift + A) で簡単に実行できます。

コード全文

Sub changeColor()
    ' changeColor Macro
    ' フォントの色を切り替えるマクロ
    ' Keyboard Shortcut: Ctrl+Shift+A

    Dim selectCell As Range
    ' 選択範囲をselectCellに入れる
    Set selectCell = Selection

    ' フォントの色が黒 (RGB(0, 0, 0)) の場合
    If selectCell.Font.Color = RGB(0, 0, 0) Then
        ' 選択されたフォントの色を灰色に変更
        With Selection.Font
            .Color = -16776961 ' 青の色コード
            .TintAndShade = 0
        End With
    Else
        ' それ以外の場合、フォント色を自動設定 (通常は黒) に戻す
        With Selection.Font
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
        End With
    End If
End Sub

解説

1. コードの概要

このコードは、選択したセルのフォント色を条件によって切り替えるものです。

  • フォントの色が黒 (RGB(0, 0, 0)) の場合、青に変更します。
  • それ以外の色の場合は、フォントの色を「自動」(通常は黒)に戻します。

2. ポイント解説

  1. Dim selectCell As Range

    selectCell という変数を Range 型で宣言します。これは、選択されたセルの情報を格納するための変数です。

  2. Set selectCell = Selection

    現在選択されているセルの範囲を取得し、selectCell に代入します。

  3. If selectCell.Font.Color = RGB(0, 0, 0) Then

    フォントの色が黒であるかを判定します。RGB(0, 0, 0) は、色コードで黒を意味します。

  4. With ... End With

    With ステートメントを使って、対象(ここでは Selection.Font)に対するプロパティ設定を簡略化しています。

  5. フォントの色設定
    • .Color = -16776961: 色を青(特定のRGB値)に変更します。
    • .ColorIndex = xlAutomatic: フォントの色を「自動」に戻します。

実行手順

1. マクロを作成

  1. Excel を開きます。
  2. Alt + F11 を押して VBA エディターを開きます。
  3. Insert メニューから Module を選択し、新しいモジュールを作成します。
  4. 上記のコードをコピーして貼り付けます。

2. キーボードショートカットを設定

  1. Excel に戻り、Alt + F8 を押してマクロ一覧を表示します。
  2. changeColor マクロを選択し、オプション ボタンをクリックします。
  3. ショートカットキーに Ctrl + Shift + A を指定します。

3. マクロの実行

セルを選択し、Ctrl + Shift + A を押すことでフォント色が切り替わります。

注意点

  1. フォント色の設定

    -16776961 は青を意味しますが、別の色を指定したい場合はRGB値を変更することでカスタマイズできます。

    例: .Color = RGB(255, 0, 0) とすると赤になります。

  2. 範囲の選択

    マクロは選択されたセル範囲すべてに適用されます。

このマクロは、特定のセル範囲に対してフォント色を迅速に変更したい場合に便利です。ぜひ試してみてください!