
No.5ベストアンサー
- 回答日時:
こんにちは。
#3の回答者です。
#4さんのは、再帰というテクニックを使って十分すぎるご解答です。
その後では、くすんでしまって、出しづらいものがあるのですが、Shapes の中身の振り分けを厳しくしました。簡単にいうと、フォーム・ボタンなどはカウントしないということです。
出力先は、ご自身でお決めください。Range("A1")になっている所を書き換えれば済みます。
'//標準モジュール
Sub TextinShapeOut1()
Dim shp As Object
Dim TF2 As TextFrame2
Dim txtRng As TextRange2
Dim nms() As Variant
Dim i As Long, j As Long
For Each shp In ActiveSheet.Shapes
If TypeName(shp) = "Shape" And shp.OnAction = "" Then
On Error Resume Next
Set TF2 = shp.TextFrame2
If Err.Number <> 0 Then Exit For
On Error GoTo 0
Set txtRng = TF2.TextRange
For i = 1 To txtRng.Count
ReDim Preserve nms(j)
nms(j) = txtRng.Item(i)
j = j + 1
Next
End If
Next
'出力先
For i = 0 To UBound(nms)
Range("A1").Offset(i, 0) = nms(i) '先頭セル
Next
End Sub
ご回答ありがとうございます!
拙い質問に真摯に応えてくださり、感謝しております。
vbaの仕様もとても理想に近いものでした!色々なやり方があると勉強させて頂きました。
2度ご回答くださった事もあり、ベストアンサーにさせて頂きました。ありがとうございました!
No.4
- 回答日時:
仮にSheet2に書き出すとして
Dim r
Sub test()
Dim shp As Shape
r = 1
For Each shp In ActiveSheet.Shapes
表示 shp
Next
End Sub
Sub 表示(s As Shape)
Dim shp2 As Shape
If s.Type = msoGroup Then
For Each shp2 In s.GroupItems
表示 shp2
Next
Else
Worksheets("Sheet2").Cells(r, 1).Formula = s.TextFrame2.TextRange
r = r + 1
End If
End Sub
で如何でしょう?
ご回答ありがとうございます!
ほぼ理想通りのことが可能になり感動しております。
これから中身を噛み砕いて、次回に応用出来るよう精進します。ありがとうございました!
No.3
- 回答日時:
私は、ご質問がよく分からないです。
>地図自体は複数のオートシェイプで作成しております。
【この部分が分かりません】>その中に人の名前をそれぞれ入力し、
>さらにその名前を同シート内でセルに抽出し、
>一覧にしたいと考えております。
名前を、マクロで入れて、マクロで出す?
一体、その名前は、どういう状態・オートシェイプにどういう対応があるのですか?
マクロ自体を理解していないと、オートシェイプとセルとを結びつけることは不可能だと思うのです。オートシェイプには、Index(いわゆる順番) が存在しますが、それをグループ化してしまうと、Index は生きているのですが、新たにつけ変わったり、その順番が変わってしまった可能性もあります。
別に、マクロで、オートシェイプから名前を抽出し、一覧にするなら、造作もないことですが、質問の文章からは、その肝心の名前が、どこにどのように存在するのか、私には読み取れません。
ご返答ありがとうございます。
状況が解りづらく申し訳ないです。図形が無造作に20個くらい散らばっていて、その図形内の文字はそれぞれ直打ちです。
抽出後の順番はこだわっておりません。
無知な質問で大変恐縮ですが、名前を抽出し、一覧にするマクロを教えて頂けないでしょうか?
どうぞ宜しくお願い致します。
No.1
- 回答日時:
セルにまとめるくらいなら、オートシェイプのテキストをセルから参照する
ようにしてはいかが。
そのほうが管理も簡単ですし、修正も簡単なので。
http://excel.ohugi.com/100531_04012607.htm
http://www.relief.jp/docs/002519.html
オートシェイプのテキスト入力状態で、数式バーに参照するセルを指定
すれば、セルの内容がオートシェイプ上に表示される機能なので。
この方法ならグループ化していても問題ありません。
すでに入力したものを使うことが前提だと、マクロになります。
この場合は他の回答者からのアドバイスをお待ちください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】
- エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい
- Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について
- エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望
- エクセルの数式で教えてください。
- エクセルのマクロについて教えてください。
- エクセル バーコード作成で他のシートを参照するには?
- Excelマクロ 差分抽出の方法が知りたいです。
- 条件に合った数値の合計を表示させたい関数と条件指定の方法
- 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください)
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
excel 図形に入れたテキストやテキストボックスの文字をセルに書き出す
Excel(エクセル)
-
複数あるテキストボックス中のテキスト取り出し
その他(Microsoft Office)
-
エクセルテキストボックスの文字列をセルに引っ張ってくるやり方
Visual Basic(VBA)
-
-
4
VBA 図形のテキスト取得
Excel(エクセル)
-
5
図の貼り付けデータからテキストデータを抽出できますか?
Access(アクセス)
-
6
全てのテキストボックスをセルに出力
Visual Basic(VBA)
-
7
Webページ保存によるテキストボックス内文字の抽出
その他(Microsoft Office)
-
8
オートシェイプの文字列の抽出について
その他(Microsoft Office)
-
9
Excel VBA インデックスの境界について
Excel(エクセル)
-
10
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
11
【EXCEL VBA】オートシェイプをクリックした時にそのオートシェイプの名前を取得したい
Visual Basic(VBA)
-
12
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
13
エクセルでエラーが出て困っています。
Excel(エクセル)
-
14
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
15
IPアドレス「0/16」とか「0/24」って何?
ネットワーク
-
16
エクセルVBAでセル番地を指定してオブジェクト名取得
Excel(エクセル)
-
17
エクセル if文で偽判定のとき、何も起こらないようにしたいのですが・・・
Access(アクセス)
-
18
指定範囲内のオートシェイプを数えるには?
Excel(エクセル)
-
19
エクセルで別シートの同じ位置にオブジェクトをコピーしたい
その他(Microsoft Office)
-
20
オートシェイプ図形をクリックでコメントを表示したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
クリックすると文章が表示され...
-
現在のセルの位置を返す関数は...
-
エクセルでセルをダブルクリッ...
-
エクセルでの検索ボックスの作...
-
Excelで挿入した図をセルの中央...
-
EXCELのセルや文字色の反映
-
Excel ハイパーリンクのURLを別...
-
エクセルでPDFリンクを大量...
-
EXCEL プルダウンから指定セル...
-
セルがクリックされた回数をカ...
-
シート保護とグループ化機能を...
-
マクロを実行すると画像がズレ...
-
太字に設定されているセルの個...
-
[エクセル VBA]テキストファ...
-
アポストロフィーの一括挿入 ...
-
Excelで、図形内の文字をセルに...
-
エクセルVBA セルに表示された...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
クリックすると文章が表示され...
-
Excelでセルをクリックす...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
エクセルでの検索ボックスの作...
-
Excel ハイパーリンクのURLを別...
-
太字に設定されているセルの個...
-
セルの内容をテキストボックス...
-
セルの値が変ると自動でマクロ...
-
現在のセルの位置を返す関数は...
-
フォントの色を指定して削除出...
-
EXCELのセルや文字色の反映
-
Excelで挿入した図をセルの中央...
-
VBA 見つからなかった時の処理
-
【EXCEL】先週の月曜日の日付を...
-
エクセル 未入力セルがあると...
-
excelで セルの移動時に...
おすすめ情報