Movatterモバイル変換


[0]ホーム

URL:


Office Hack
作業効率アップ!230個のExcelショートカットキーPDF無料ダウンロード
  • 公開日:

エクセルで文字を自動的に丸で囲む簡単な方法

エクセルで文字を自動的に丸で囲む方法をご紹介します。

自動的に丸で囲むことで、例えばエクセルで作成した出席表の「出席の有無」について「有」か「無」に丸をする必要がある場合などに役立てられます。

VBAを使用しますがコードを記載しますので、エクセル初心者の方でも簡単に設定ができます。

エクセルで文字を自動的に丸で囲む簡単な方法

エクセルで文字を自動的に丸で囲む方法をご紹介します。

今回はVBAを使って設定します。

開発タブを表示する

VBAの設定は「開発タブ」から行います。

開発タブについて

開発タブはデフォルトでは表示されていないので、以下の記事で表示させましょう。

エクセルの開発タブを表示する方法

VBAを使って文字を自動的に丸で囲む設定を行う

VBAを使って、特定の文字を自動的に丸で囲むように設定を行います。

今回はあらかじめ丸で囲みたい文字をリスト化しておいて、マクロを実行するとリスト内と同じ文字を探して図形の丸で囲むようにVBAを設定します。

図形が挿入される

例えば、「有」とリストに入力しておけばシート内に「有」の文字があった場合に図形の丸で囲みます。

丸の大きさはセルの幅に合わせます。

方法の詳細は以下のとおりです。

Visual Basicを選択する

「開発」タブ、②「Visual Basic」の順に選択します。

標準モジュールを選択する

「Microsoft Visual Basic for Applications」というVBAの編集画面が表示されます。

「新しい標準モジュール」、②「標準モジュール」の順に選択します。

コードを貼る

以下のコードをコピーして貼り付けます。

上記の画像の緑色の文字は、各コードが何の動作を指定しているかを説明しているコメントです。コピー用のコードではコメントを省いています。

あらかじめ丸で囲みたい文字をSheet2のA1セルからA10セルにリスト化しておいて、マクロを実行するとリスト内と同じ文字をSheet1から探して図形の丸で囲む、という意味のコードになります。

Sub 自動的に丸で囲む()    Dim ws As Worksheet    Dim listWs As Worksheet    Set ws = ThisWorkbook.Sheets("Sheet1")     Set listWs = ThisWorkbook.Sheets("Sheet2")     Dim cell As Range    Dim listCell As Range    Dim text As String    Dim foundPos As Integer    Dim circledChar As String    Dim startPos As Double    Dim shp As Shape        Dim listRange As Range    Set listRange = listWs.Range("A1:A10")        For Each shp In ws.Shapes        If shp.AutoShapeType = msoShapeOval Then            shp.Delete        End If    Next shp    For Each cell In ws.UsedRange        text = cell.Value                For Each listCell In listRange            circledChar = listCell.Value            foundPos = InStr(text, circledChar)            If foundPos > 0 Then                                startPos = cell.Left + (foundPos - 1) * (cell.Width / Len(text))                Dim circleWidth As Double                circleWidth = cell.Width / Len(text)                                Set shp = ws.Shapes.AddShape(msoShapeOval, startPos, cell.Top, circleWidth, cell.Height)                                With shp                    .Line.ForeColor.RGB = RGB(0, 0, 0)                     .Line.Weight = 1                     .Fill.Transparency = 1                 End With                               Do While foundPos > 0                    text = Replace(text, circledChar, "", 1, 1)                    foundPos = InStr(text, circledChar)                    If foundPos > 0 Then                        startPos = cell.Left + (foundPos - 1) * (cell.Width / Len(text))                        Set shp = ws.Shapes.AddShape(msoShapeOval, startPos, cell.Top, circleWidth, cell.Height)                                                With shp                            .Line.ForeColor.RGB = RGB(0, 0, 0)                            .Line.Weight = 1                            .Fill.Transparency = 1                        End With                    End If                Loop            End If        Next listCell    Next cellEnd Sub

シート名を変更したい場合は、4行目と5行目の「"Sheet1"」「"Sheet2"」を変更しましょう。

Sheet2のリストを入力する位置を変更したい場合は、15行目の「Set listRange = listWs.Range("A1:A10")」の「("A1:A10")」のセル範囲を変更しましょう。

保存ボタンを押す

コードを貼り付けたら、「保存」を選択します。

マクロ有効ブックで保存する

「名前を付けて保存」ダイアログボックスが表示されます。

任意の保存場所(例:デスクトップ)を選択します。

②ファイルの種類で「Excel マクロ有効ブック」を選択し、③「保存」ボタンを押します。

文字のリストを作成する

エクセルの画面に戻ります。

マクロを実行するために、まずはリストを作成しましょう。

今回は「Sheet2のA1セルからA10セルに入力した文字のリスト」にある文字をSheet1で見つけて図形の丸で囲むため、Sheet2にリストを作成します。

「Sheet2」を選択して、②A1セルからA10セルまでに「有」「無」と入力しておきます。

文字を入力する

次にSheet1に文字を入力します。

「Sheet1」を選択します。

任意のセルに「有」「無」と入力しておきます。

マクロを選択する

次にVBAを実行してみます。

「開発」タブを選択して、②「マクロ」を押します。

マクロを実行する

「マクロ」ダイアログボックスが表示されます。

先ほど設定したマクロを選択して、②「実行」ボタンを押します。

図形が挿入される

すると、Sheet2に入力していた「有」「無」の文字が図形の丸で囲まれました。

関連記事

作業効率アップ!230個のExcelショートカットキーPDF無料ダウンロード

問題は解決できましたか?

記事を読んでも問題が解決できなかった場合は、無料でAIに質問することができます。回答の精度は高めなので試してみましょう。

質問例1
ExcelのIF関数で複数条件に対応する方法を教えて
質問例2
Microsoft 365でできることを教えて
あなた

あと100文字

コメント

この記事へのコメントをお寄せ下さい。

コメントをキャンセル

関連記事


[8]ページ先頭

©2009-2025 Movatter.jp