• ベストアンサー

エクセル内のオートシェイプ(楕円)内の数字検索

Excel マクロでオートシェイプ(楕円)内の数字を検索するマクロを探しています。 数字は同時に複数検索できるように、シート内の複数のセルに数字を入力してボタンを押すと 検索が開始されるような物が有ればよいのですが。 下記のアドレス回答が近かったのですが オートシェイプ全種類の検索となってしまう 同時に複数の数字の検索が出来ないなどの 問題が有ります。 http://okwave.jp/qa/q4407755.html

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

変更箇所1: If se.Item(i).Type = msoAutoShape Then  ↓ If se.Item(i).AutoShapeType = msoShapeOval Then 変更箇所2: MsgBox (Str(total) & "個のAutoShapeのうち" & key)  ↓ MsgBox (Str(total) & "個の楕円のうち" & key) InputBoxの代わりに「シート内の複数のセル」をFor each nextで順繰り巡回するぐらいは,ご自分でやってみてください。 これ以上はちょっと失礼とは思いますが一応念のため参考に: dim h as range for each h range("A1:A10") if h <> "" then msgbox h.value 'and so on end if next

sinnyatokkyu7
質問者

お礼

回答ありがとうございます マクロ初心者のため迷惑をおかけしました 変更箇所1の情報など、悩んでいた箇所がようやく解りました インプットボックス→順繰りも悩みましたが、他の方の協力も有り なんとか思っていたマクロを組むことが出来ました。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

楕円だけの検索なら Sub TEST() For Each D In Sheet1.Ovals MsgBox D.Text Next End Sub でも可能です

全文を見る
すると、全ての回答が全文表示されます。
  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

標準モジュールに Sub Macro1() UserForm1.Show Range("A1").Select End Sub ユーザーフォームに Dim COUNTER As Integer Private Sub UserForm_Initialize() CommandButton1.Caption = "検索" CommandButton2.Caption = "修正" CommandButton3.Caption = "終了" COUNTER = Cells(Rows.Count, 1).End(xlUp).Row For INP1 = 1 To COUNTER Controls("TextBox" & INP1) = Range("A" & INP1) Next INP1 End Sub Private Sub CommandButton1_Click() For INP2 = 1 To COUNTER ActiveSheet.Shapes(INP2).Select Controls("TextBox" & INP2) = Selection.Characters.Text Next INP2 End Sub Private Sub CommandButton2_Click() For INP3 = 1 To COUNTER ActiveSheet.Shapes(INP3).Select Selection.Characters.Text = Controls("TextBox" & INP3) Next INP3 End Sub Private Sub CommandButton3_Click() Unload Me End Sub >シート内の複数のセルに数字を入力 COUNTER = Cells(Rows.Count, 1).End(xlUp).Rowで A列にしていますので1の部分を適宜修正してください。 CommandButton1を押すと入力した数字のオートシェイプ(楕円)内の数字が 表示されます。 CommandButton2を押すとテキストボックスに入力した数値が オートシェイプ(楕円)内の数字にかわります。ここは必要なかったかもしれません。 テキストボックスは必要なだけ配置してください。 (注)タブ゛オーダーで必ず上からTextBox1、TextBox2と順番に配置されていることを 確認してください。

sinnyatokkyu7
質問者

お礼

回答ありがとうございます マクロ初心者の為、内容の理解に時間が掛っていますが 他の回答者様の情報でなんとか自分の思っていたマクロ が組めました、こちらのマクロの理解にはもう少し時間が かかりそうですが、とりあえずお礼をさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ExcelVBA オートシェイプについて

    セルの選択した場所のとなりにオートシェイプを移動させるマクロを組みたいと思っています 見かけがまったく同じシートが4枚あり、そのシート全てに同じマクロを指定したいのですが、オートシェイプの名前の指定の仕方が分からなく困っています SelectionChangeイベントでオートシェイプ移動のマクロを動かしているので、同じ名前のボタンならよいのですが・・・ なにかよい方法はないでしょうか?

  • オートシェイプ

    オートシェイプで文字列を楕円で囲んだセルを別のせるに貼り付けると楕円がでてこないんですが良い方法を教えて下さい。 エクセル2003です。

  • オートシェイプ同士をリンクさせる事は出来ますか?

    同シート内に、「1」と入力してある楕円のオートシェイプが2つあります。 どちらかをクリックすると、もうひとつのオートシェイプへ飛んでいける・・・ ようなことを、実現するにはどうしたらいいでしょうか? ちなみに、シートが分かれることはありません。 オートシェイプは、1~50 までの連番で、シート内に2つ存在します。 オートシェイプ同士をリンクさせる事は出来ますか? 広いシートの中で、同じ番号を見つけるのが大変なのです。 オートシェイプだと、検索に引っ掛かってくれないので。。 環境は、Windows2000 office2000 です。 ご教授の程、よろしくお願い致します。

  • エクセル:シートの全コピー貼り付けでオートシェイプを除いて実行

    エクセルのシート(Cells)の全データをコピー&(別のシートへ)貼りつける(マクロを使用して貼りつけています)とき、「オートシェイプ」だけを除いた全データを貼り付けることは可能でしょうか? そのオートシェイプはマクロボタンとしているのですが、マクロを実行するたびにオートシェイプの貼付けが繰替えされるため、どんどん重なっていくのを防ぎたいのです。よろしくご指導ください。 ※このオートシェイプの貼付の繰返しによりファイルが重くなることはないでしょうか?ないのなら無視してもよいかとは思っています。

  • マクロでオートシェイプを表示したいのですが(泣)

    マクロが理解できない初心者です。 エクセルで書類を作成しているのですが 「特定のセルに入力された文字列を 楕円のオートシェイプで囲む」といった要領で 分類する項目が大量にある書類を作成することになり マクロの記録を使ってマクロを作成しようと試みたのですが うまくいかず、困っています・・・ VBAなどで記入してマクロを作るということは 検索してわかったのですが 勉強する時間的余裕がありません・・・ どなたかご教授ください おねがいします。 例 |新規|継続|といった項目のどちらかを分類するために 囲みたいセルをダブルクリックすると 楕円のオートシェイプで項目の文字列を囲むいう感じです。 ダブルクリックするとシェイプが表示され さらにダブルクリックすると非表示になるといったマクロが できないでしょうか?

  • Excelでオートシェイプを条件によって貼り付けることは可能でしょうか?

    Excelであるセルに入力した値に条件をつけて、その条件によって特定のセルにオートシェイプ(楕円など)を貼り付けることは可能でしょうか? アドバイスよろしくお願いします。

  • エクセル2007でのオートシェイプのマクロ記録

    エクセル2007でのオートシェイプのマクロ記録ができません。 エクセル2000、エクセル2003では、可能です(テスト済)。 2007でのオートシェイプのマクロ記録のやり方は何か特殊なのでしょうか。 たとえば、エクセル2007の開発タブから「マクロの記録」を選び、楕円を描いてマクロ記録を終了し、VBEでそのマクロを開いても、題名等はあるものの sub 題名()から End Sub までの間にコードはなく空白になります。 おわかりの方にお尋ねします。 検索してみましたが、件数が多く閲覧した範囲では、見当たりませんでしたので、よろしくお願いします。

  • VBA シート上のオートシェイプを移動させたくない

    お世話になります。 シート上にオートシェイプ(四角形)をつくり、 名前を付けています。 予定1、予定2…実際1、実際2・・・ これを指定のセルから移動させたくないと思っています。 また、マクロの登録をして、ボタンにしようと思っています。 ただ、シートは保護をかけようと思っており、 オートシェイプがロックのままだと、ボタン機能が使えなくなります。 かといって、ロックを外すと移動できてしまうし… 何か変わりの方法はありませんか? 私の知識不足で、他のいい方法を見逃しているのかもしれません! 回答お願い致しますorz

  • エクセルでのオートシェイプについての質問です。

    エクセルでのオートシェイプについての質問です。 エクセルのシートの一定の決まったセルに数字を打ち込むとそれに連動してオートシェイプの矢印の長さを変更できるようにしたいのですが、わかる方いますでしょうか? 例えばB1に「1.0」、B2に「1.5」、B3に「2.0」を入力した場合、連動してc1,c2,c3にある矢印の長さが変わるものです。 VBAを理解したいのですが、できれば、コピー貼付けできるコードを教えていただきたいのです。

  • オートシェイプ図形の角度をマクロで変えたい

    エクセルのオートシェイプで図形を作って、それをグループ化して、 A1のセルへ数値を入力するとシート1上にあるオートシェイプの角度が変化するようにしたいのです。マクロで出来るでしょうか。 シート上の図形は、Group25 です。 エクセル2000を使用しています。 よろしくお願いします。

専門家に質問してみよう