Excelでセルのクリックで囲む方法はある?

このQ&Aのポイント
  • 【Excelマクロ初心者向け】セルをダブルクリックするとセルが囲まれる方法を教えてください。
  • 会社で使用するExcelファイルには選択肢があり、セルをクリックするとセルが囲まれるようにしたいです。
  • マクロを使わない方法でセルをクリックして囲むことはできるのか、またマクロ導入から実際の使用までの流れを教えてください。
回答を見る
  • ベストアンサー

セルをクリック⇒そのセルに入力された文字を○で囲む

昨日質問させて頂いたのですが、会社のパソコンではネットは使えない為、マクロ以外の方法でと質問させて頂きましたが、こちらのサイトにはアクセス制限がかかっておらずコピーペースト可能でしたので再度質問させて頂きます。 ちなみにマクロは今回初めて使う為、完全初心者です。 マクロ入門サイトをいくつか読んでみましたが、よくわかりませんでした… 本題ですが、例えばエクセルのシートに 1.いちご 2.りんご 3.みかん という選択肢があり、2番のりんごを選択したいとします。 『2』という数字の書かれたセルをダブルクリックすると、『2』という数字が○で囲まれるようにする事は出来ないものでしょうか? 会社で使うファイルなのですが、そのファイルにはこういった選択肢がいくつもあるので、シート上のどのセルをクリックしても、クリックした箇所が○で囲まれるようになればと思います。 コピーする為の式が貼り付けられているのを見かけますが、ああいった式を貼り付けた場合、囲む○の大きさや形状はどの段階で指定するのでしょうか? (ちなみに今回使用したい○のサイズや形状は、どこのセルをクリックしても同じもので構いませんが、行からはみ出ない大きさの○に設定したいです) 一応私が調べたサイトでは、Altキーを押しながら[F11]キーを押す⇒標準モジュールの右側に式を貼り付けると書いてありましたが、その後どのようにその画面を終了するのか、またその後どのように実行するのかが書かれてありませんでした 会社のパソコンはEXCEL2013です。 マクロのコードを貼り付けて、実際に使ってみるまでの流れも教えて頂けませんでしょうか? 素人でもわかりやすいサイトがあればそちらでも構いません。 どうかよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

このような要求は昔からよくありました。結構大変です。 それは、セルに入力された文字がどのようになっているか分からないからです。何もないシートに図形を挿入しようとすると、例えば、   1.単一セルなのか結合セルなのか   2.フォントの種類やフォントサイズは   3.行高とセル内での上・中・下の位置は   4.左・中・右揃えは   5.どこに「○」を付ける   6.セル内の文字は数値?文字列?   7.表示した「○」を消したいことは? くらいがはっきりすると制約付きでモジュールを作れます。 この質問の場合はほとんど未定の場合なわけで、次のようにします。 ア.実際に使用するシートに「○」を書いてください。 イ.解答したモジュールをそのシートのコードウィンドウに貼り付けて下さい。 (ALT-F11でVBE画面に移動し、メニューから、表示>プロジェクトエクスプローラーを選択し、Sheet1に「〇」があるならプロジェクトエクスプローラーのSheet1(Sheet1)をダブルクリックして表示された右の広い画面に貼り付けます。(Wordやメモ帳などと同じ感覚です)) これで終了です。当然ですが、ダブルクリックするたびに図形が現れたり消えたりします。「○」は図形のマルです。(別の形でも構いません)表示された図形を動かせないようにシートに保護をかけるべきかもしれません。このあたりは検討してください。 シートに帰ります。 この後、「〇」がうまく配置できたか検証します。「ア」で重要な点は、「○」の左上を該当セル内に納めることです。 うまく「○」が置けていれば、そのセルをダブルクリックすれば「○」は消えます。消えなければ位置を修正してください。必要な箇所に「○」を配置して、テストでダブルクリックして表示を全部消してしまいます。全部消えればテストと初期化が終了です。 最初に「○」を貼り付けてもらうことで、モジュール側で行うことが劇的に減少します。このようなシートを使うことの現実味も出てきます。 しかし、実務ではあまり使いません。この後、(アンケートのように)「○」を集計したいなどの追加要求が出てきたりします。「○」を付けて印刷したりしてその場限りで使うにはいいかもしれません。試してみてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)   Dim shp As Shape 'オートシェイプ   For Each shp In Shapes     With shp       If Not (Application.Intersect( _         Range(.TopLeftCell.Address), Target) Is Nothing) Then         .Line.Visible = Not (.Line.Visible)       End If     End With   Next   Cancel = True End Sub

-juza-
質問者

お礼

ご丁寧にありがとうございます。 挿入して下さっていた一番下の画像にあるような感じで○を付けるのが理想だったのですが、単一セルか結合セルかによっても変わってくるのですね。素人の私には難しすぎました…(笑) まずは他の方法で代用し、自分なりにマクロについて勉強してみた上で、教えて頂いたものをやってみようと思います。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! なかなか回答がつかないようなので・・・ >『2』という数字の書かれたセルをダブルクリックすると、 >『2』という数字が○で囲まれるようにする事は出来ないものでしょうか? 単純にセルを塗りつぶすだけの方が簡単なのですが、 ご要望が「丸囲い文字」というコトですね。 ExcelではWordのような囲い文字の設定はないようですし、 丸囲い数字は環境依存文字になってしまいますので、 オートシェイプの丸をセル上に表示させる方法はどうでしょうか? 尚、セル内の数字の位置がバラバラだとずれてしまいますので、数字そのものも中央揃えにしています。 セルをダブルクリックすると、数値が入っているセルに関してだけ「丸囲い文字」もどきにしています。 (文字列セルは何も反応しません) そして、すでに丸のオートシェイプがあるセルをダブルクリックすると その丸は消えるようにしてみました。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻り、好みのセルをダブルクリックしてみてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'この行から Dim c As Range, myShp As Shape, myFlg As Boolean Set c = Target If IsNumeric(c) And c <> "" Then Cancel = True c.HorizontalAlignment = xlCenter For Each myShp In ActiveSheet.Shapes If myShp.Top >= c.Top And myShp.Top + myShp.Height <= c.Top + c.Height And _ myShp.Left >= c.Left And myShp.Left + myShp.Width <= c.Left + c.Width Then myFlg = True Exit For ElseIf myShp.Left > c.Left + c.Width And myShp.Top > c.Top + c.Height Then Exit For End If Next myShp If myFlg = True Then myShp.Delete Else With ActiveSheet.Shapes.AddShape(msoShapeOval, c.Left + (c.Width - c.Height) / 2, _ c.Top + c.Height / 40, c.Left + c.Height, c.Top + (c.Height / 20) * 19) .Width = c.Height - c.Height / 20 .Height = c.Height - c.Height / 20 .Fill.Visible = msoFalse With .Line .ForeColor.RGB = vbBlack .Weight = 0.7 End With End With End If End If End Sub 'この行まで ※ セル幅がセルの高さより広いという前提です。 ※ すでにオートシェイプが表示されているセルでダブルクリックする際、 オートシェイプ上でダブルクリックしないようにしてください。 こんな感じではどうでしょうか?m(_ _)m

-juza-
質問者

お礼

クリックすると、そのセルにオートシェイプで作った○が乗るようになればなぁと思ったのですが、なかなか難しいのですね。 自宅のパソコンではエクセルが使えないので、会社に行ったら早速試してみたいと思います。 お忙しい中わざわざ考えて頂き本当にありがとうございました(^^)

関連するQ&A

  • セルをクリックするだけで○で囲まれるようにしたい

    例えばエクセルのシートに 1.いちご 2.りんご 3.みかん という選択肢があり、2番のりんごを選択したいとします。 数字の左側にチェックボックスを追加する方法は考えたのですが、そうではなくて、『2』という数字をクリックすると、『2』が○で囲まれるようにする事は出来ないものでしょうか? 会社で使うファイルなのですが、そのファイルにはこういった選択肢がいくつもあるので、その場所をクリックするだけで○が表示されるようになると有難いです。 従業員のパソコンはインターネットアクセス不可ですので、長々とした式のようなものをコピーペースト出来ません。(1行程度の入力でしたら頑張って手入力します) 式のようなものをコピーする以外で何か良い方法や、そういう方法について分かりやすく書いてあるサイトがございましたら教えて頂けませんでしょうか?

  • クリックで文字を囲みたいです。

    ご回答、願います。 私は今、会社の指示により「従業員個人個人の教育記録の作成と更新」を行っています。しかしながら、この記録台帳がなかなか不便なものなため、作業が行いやすいように、私自身で、ドロップや書式設定などを書き換えた新しいテンプレートを作成しています。 大枠は完成し、作業にとりかかってみましたが、 1 ○○○ 2 ××× 3 □□□ といった、複数の選択肢から、左の番号を選び、選んだ数字を囲うように○(塗りつぶしなし・線の色は黒・線の太さは0.75)を挿入しなくてはならない作業が複数あり、これにより、○をいちいち挿入しコピーし貼り付けることに手間を焼いています。 これに対し、セルをダブルクリックすれば、指定のセル(文字)を○が囲うように設定したいのですが、何分、マクロには大変疎く、ネットで調べてみても分かりません。 どなた様か、よい解決策、マクロの算出式を教え願えませんでしょうか。 よろしくお願いします。

  • Excel2007 文字をマルで囲むマクロについて

    Excelで 1.あるセルを選択あるいは複数のセルを選択。 2.ボタンをクリックすると、実線のマルで文字を囲む。   (線の太さはマクロ内で0.75を指定) 3.もう一回ボタンをクリックすると点線のマルで文字を囲む。 4.もう一回クリックすると文字はマルで囲まれない。 5.以降、ボタンをクリックすると2.~4.がくり返される。 1.はマウスでセルをクリックする操作をしますが、2.~5. はマクロを設定したボタンをクリックする操作です。 選択するセルは、離れたセルを複数選択していてもうまく文字を 囲むマクロです。 このボタンに設定するマクロを教えていただけないでしょうか。 (使い方としては、表の上部のセルにボタンをレイアウトし、  ボタンにマクロを設定し、表の中のセルをクリックしたあと  マクロを設定したボタンをクリックすると、選択したセルが  マルで囲まれる。そんな操作です。) 選択するセルに入力されている文字は、 「全角1文字」「全角2文字」「半角1文字」「半角2文字」の ケースがあります。 できれば、マクロの中でこの4つのケースでもうまくマルあるいは 楕円で文字を囲む処理を一つのマクロでできると助かります。 Excel97でもこのマクロを使います。 難しい質問で申し訳ありません。宜しくお願い致します。

  • A1セルで折りかえし入力された文字・・・左右どちらをクリックしても拡大

    A1セルで折りかえし入力された文字・・・左右どちらをクリックしても拡大される文章を別シートにコピーしたい。 EXCEL2003エクセルです。 A3用紙設定で 半分(A1セルが結合された状態)が左右どちらをクリックしても拡大されます。(虫眼鏡マーク無 点滅|線です) A1セル(右半分はセル結合されています)・・・1セル?だけなのに 文字が折り返しで入力され (画像で貼り付けではなく)文字間の編集もできる状態です。 横の半のページの行数では収まらない行数、文字数で小さく クリックして文字を読む感じです。 ですが 通常 文字の入ったセルをクリックすると 上の数式バー?に文字がでますが このセルに限り 数式バーもでていません。 マクロを無効にするなどメッセージはでません。 拡大したい半分(列幅A4サイズで3列)を 新規のシートに貼り付けたいのですが 貼り付けると(形式選択も) 途中できれたシートになり 勝手に拡大もコピーされます。 この勝手に拡大を解除したいのと どのような設定かを知りたいのです。 自分でもどう説明すればよいかわからず 変な質問で申し訳ありませんが よろしくお願いします。

  • セルをクリックすると別のファイルのシートをコピー

    新しいシート(sheet1)に項目をつけて セルA1「表紙」・セルA2「消火器」・セルA3「誘導灯」を設定 セルA1の「表紙」をクリックすると、(sheet2)に別のブックからシート(表紙)をコピー セルA2の消火器」をクリックすると、(sheet3)に別のブックからシート(消火器)をコピー セルA3の「誘導灯」をクリックすると、(sheet4)にに別のブックからシート(誘導灯)をコピー という風にsheetを増やしていきたいのですが、どうやったら良いのでしょうか? マクロもVBAも経験ありません。 が、がんばりますので、アドバイスをお願いいたします。

  • Excelでのセル操作について

    お世話になります。 以下の2点について、ご教授願います。 【(1)】 エクセルのシート上でセル(A1)をリストにし1~3という数字を選択できるようにしています。 そこで、1を選択した際にはB列を非表示、2を選択した際にはC列を非表示、3の場合はD というようなマクロは組めるのでしょうか? 【(2)】 セル(A1:Z46)をダブルクリックした際に"○"を入力し、 すでに"○"が入力されている場合は空白にする というマクロを組みたいと思っています。  ⇒○を入力する、までは正常にいけたのですが、○が入ってる場合は空白にがうまくいきません。 以上の2点になります、宜しくお願い致します。

  • セルに自動で文字を入力するには(オフィス2000)

    セルへの文字入力について質問があります。 セルに、入力規則のリストで入力を行っています。 リストが参照しているセルは、IF関数を使用して、○か空欄の表示判定を行っています。(セルは隠している) 入力項目が大量にあるため、ドロップダウンリストでは効率が あまりよろしくありません。   A   B  C 1 アイス    ○ 2 かき 3 なし     ○ ↓ 100         B列はあくまでチェックを行いたいので、手動で選択しなければ なりません。(○がある場合は空欄のときは入力不可を示しています。) マクロでの、ダブルクリックで文字が入力できる項目などもみたのですが、マクロのイメージに合うような物が見つけられませんでした。 (マクロも記録をつなげるぐらいなのですが・・・) このような処理をしている場合は、やはりドロップダウンリストを 使用するしかないのでしょうか? よろしくお願いいたします。

  • Excelでの○表示

    3つのセルに A1:みかん A2:りんご A3:ぶどう とそれぞれ項目が入力されています。りんごのA2セルをダブルクリックすると”りんご”の文字の上に○が表示されるような方法はありますか? できればラジオボタンのように、別のセルをダブルクリックすると他のセルの○は消える(A2りんごの上に○があるとし、A3ぶどうをダブルクリックするとA2りんごの○は消えてA3ぶどうの○のみに切り替わる)ようにしたいのですが。 または他の方法として、セルをダブルクリックするのではなく、コントロールツールボックスの「コマンドボタン」を4つ作り、それぞれのボタンを押すと対応したセルの文字の上に○を表示する(4つのうち増えた1つは○を全て消すボタンです)ような方法はありますか?

  • エクセル2003 全セル選択ボタンについて

    いつも回答していただき、とても感謝しております。 マクロで全セルのロックを解除して、列行の削除のみ不可にする記述を作成しました。マクロは問題なく完了するのですが、マクロで保護を設定したシートの全セル選択ボタンを押し、右クリックすると、しばらくフリーズしてしまいます。 (ちなみに、マクロの記述は会社保有のPC内ですので、記載することができません。) たぶん、右クリックしたときに、全セルの状態を確認しにいく為だと思うのですが・・・。 そこでフリーズしないようにするために、全セル選択ボタンをマクロ実行後使用不可にしようと思うのですが、どのようにマクロで記述すればいいのでしょうか?ネットで検索しましたが、まったく記載されていないので困っています。 ご指導お願いします。

  • エクセルでダブルクリックしセル上下入れかえ

    宜しくお願いします。 エクセルのマクロで連続したセルを横に選択して (例えば B3 B4 B5) これを真下のセル (上記の例だと C3 C4 C5)と 入れ替えるマクロを考えています。 最初に選択した時点でダブルクリックすると マクロが起動し入れ替え完了ができたらいいのですが。 ワークシートのビフォーダブルクリックを使うことまでは調べがついたのですが 肝心の入れ替えをどうコード記述すればで困っております。 どうかよろしくお願いします

専門家に質問してみよう