オートシェイプの文字列の抽出について

このQ&Aのポイント
  • エクセルのマクロにより、オートシェイプ内に記述されたテキストを抽出する方法について教えてください。
  • テキストボックスではなく、四角のオートシェイプ内に記述されたテキストを抽出する方法について教えてください。
  • オートシェイプ内のテキストを抽出して他のエクセルブックに処理を行い、その後に閉じる方法について教えてください。
回答を見る
  • ベストアンサー

オートシェイプの文字列の抽出について

エクセルのマクロについて教えてください。 今、オートシェイプで四角が描いてあり、その中にテキストで他のエクセルブックへのパスが記入してあります。 この状態から、オートシェイプ内のパスのブックを開き、開いたブックに何らかの処理をして、開いたブックを閉じるという処理をしたいと考えております。 処理を始めるトリガーは、他のオートシェイプをクリックするなどを考えております。 いろいろ試してみたのですが、オートシェイプ内に記述してあるテキストを抽出する方法が思いつきませんでした。(ここで使われているのはテキストボックスではなく、四角のオートシェイプです。) お詳しい方、どのようにすればよいか教えてください。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

Shape オブジェクトの TextFrame.Characters.Text を参照するとオートシェイプ内に記述してあるテキストが得られます。 Sub メモ1_Click() MsgBox Sheet1.Shapes(1).TextFrame.Characters.Text End Sub Shape.TextFrame Property http://msdn.microsoft.com/en-us/library/bb215095(v=office.12).aspx TextFrame Object http://msdn.microsoft.com/en-us/library/bb210284(v=office.12).aspx TextFrame.Characters Method http://msdn.microsoft.com/en-us/library/bb242015(v=office.12).aspx

metumetu
質問者

お礼

ご回答ありがとうございます。 ご教授いただいた方法を使いまして、無事希望通りに動作させることができました。

その他の回答 (2)

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.3

逆の発想で、どこかのセルにそのパスを入力。(Ex.A1セル) オートシェイプを作成し、そのオートシェイプを選択した状態で「数式バー」に「=A1」と入力。 これで、オートシェイプにセルの内容が表示されます。 後々処理があるのなら、セルにパスが入っている方が扱いやすいのではと思うのですが如何でしょう。

metumetu
質問者

お礼

ご回答ありがとうございます。 今回はすでにオートシェイプにパスが入力されているところからなので、ご教授いただきました方法は使用できませんが、セルにパスが入力されている方が便利なのは確かです。 今後の参考とさせていただきます。

回答No.2

取りあえずMsgBoxで表示をしてみます。 Sub Macro1() ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text End Sub でどうでしょう? 複数のオートシェイプがあっても、同じマクロでいけるはず。

metumetu
質問者

お礼

ご回答ありがとうございます。 こちらの方法でうまく動かすことができました。

関連するQ&A

  • オートシェイプが消えたり出たりする

    Windows 7+ Excel 2013を利用しています。 オートシェイプを200個位(四角、丸)入れています、重ね合わせはありません。 エクセルで職場のレイアウトを作成・更新しているのですが、 突然、全てのオートシェイプが表示されなくなり、オートシェイプがあるあたりの セルをクリックしたら、幾つかのオートシェイプが表示され、マウスを動かすと オートシェイプが消えてしまいます。 また、別のセルをクリックしたら、先とは、違うパターンで幾つかオートシェイプが 表示され、マウスを動かすと、何個かオートシェイプが表示されたまま、他のが消えます。 オブジェクトの選択と表示では、全て表示になっていますが、一旦、全て非表示にして、全て表示にしても、全く、オートシェイプが表示されません。 慌てて、保存せずに、終了して、パソコンを再起動、変になったエクセルブックを開いても直っていません。 仕方なく、先月のブックをコピーして、修正しています。 変になったエクセルブックですが、他のパソコン何台かで開いても同じようになります。 マクロでもあるのかと思い、Alt + F10を押してみましたが、コードは書かれていません。 諦めかけていたら、調べていないPCから開いたら、表示されています。 そこで、そのPCで上書き保存してから、変になったPCで開いたら、表示されています。 何故なんでしょうか? エクセルブックは、壊れてなかったんでしょうか?

  • Excelでオートシェイプのテキストボックス内の文字列を検索するマクロ

    Excelでオートシェイプのテキストボックス内の文字列を検索するマクロを探しています。 ご存知の方がいらっしゃいましたら教えていただけないでしょうか (検索してヒットすると当該テキストボックスにジャンプするようなマクロが理想です。)

  • excel VBA オートシェイプのテキスト段落

    おはようございます。 【オートシェイプ内のテキスト行間を指定するプロパティ】 オートシェイプ内のテキスト行間を指定するプロパティはありますでしょうか? excel 2007で オートシェイプにテキストをいれた場合、 右クリックすると「段落」という項目がでてきて、 オートシェイプ内のテキストの行間を指定できたのですが、 オートシェイプ内のテキストの行間をVBAで指定することはできるのでしょか? (マクロを登録してもなにも記述されていないので、困っています。) 最終的にはアクティブブックの全シートのオートシェイプの行間を変更する VBAにしたいと思っています。 参考URL等あれば教えていただけませんでしょうか? よろしくお願いいたします。

  • WORD VBA オートシェイプにマクロを登録したい

    オートシェイプ(四角)をクリックする度に 塗りつぶしの色が白→黒→白というように変わるように したいのですが。(チェックボックス代わりに使いたい) EXCELのオートシェイプには「マクロを登録する」と いう項目がありますが、WORDにはありません。 何かの方法でマクロを登録したいのですが 方法はありますか。 よろしくお願い致します。

  • EXCEL オートシェイプで中の文字も一緒に回転させる方法

    よろしくお願いします。 EXCEL オートシェイプで 四角を使って 塗りつぶしをしました。 そしてその中に「テキストの追加」で 工事中と書きました。 そのオートシェイプを回転させようとしました。 四角は回転できたのですが 中の文字は回転できません。 そこで質問です。 オートシェイプの四角を回転したときに 中に書かれている文字も一緒に回転させる方法を教えてください。 よろしくお願いします。

  • オートシェイプの文字列の置換

    エクセル2003を使用している者ですが、オートシェイプの文字列の置換ができなくて困っています。マクロ初心者ですが、量が多いためマクロで解決できればと思っています。 このようなマクロをご存知の方がいましたら、コードを教えていただけますでしょうか。 宜しくお願いします。

  • オートシェイプ内の文字列の配置

    現在、自宅も職場もWord2003とExcel2003を使用しています。 オートシェイプ内の文字列を縦・横とも中央に配置する方法ですが… たしか以前の職場で文書作成をした時には、 『オートシェイプの書式設定』の中に『配置』タブがあって、 その中に縦位置・横位置とも「中央揃え」を プルダウンで選べるようになっていたと思うのですが、 ExcelもWordも『オートシェイプの書式設定』の中に 『配置』タブがありません。 私の記憶違いでしょうか? それともWordやExcelのバージョンによって方法が異なるのでしょうか。 (以前の職場では描画キャンバスは出ず(見たこともなかった)  office2002だったのかもしれません。2000ではなかったです。) どなたかWord2003・Excel2003でテキストを縦横中央に配置する方法を ご教授ください。 ※オートシェイプを拡大・縮小しても中央からずれない方法が  知りたいです。ですので『テキストボックスと文字列の間隔』を  ミリ単位で調整する、以外の方法でお願いします。

  • テキストボックスとオートシェイプにテキストを追加

    初歩的なことで申し訳ないのですが.... テキストボックスと、オートシェイプ(四角)にテキストを追加した状態って、どちらがどう、なにがどう違うのでしょうか?

  • オートシェイプがうつらない

    WORD2003を使っています。 オートシェイプを作ってプレビューを見るとまったくうつっていません。普通に文字を打つのはちゃんとうつっているし、印刷にもでてきてるのですがなぜかオートシェイプとその中のテキストボックスから入れた文字が反映されていないのです。どこか悪いのでしょうか?

  • エクセル2003オートシェイプの書式について

    エクセル2003でテキストボックスの書式で’線なし’とし、且つオートシェイプでは線あり(当然ですが)とする初期設定は可能でしょうか? テキストボックス使用が多く(ほとんど、線なし設定です)線なしを規定値にすると、オートシェイプも’線なし’となってしまいます。 もちろん、線なしテキストボックスをコピーして使えばいいことなんですが...。 宜しくお願いします。

専門家に質問してみよう