- ベストアンサー
エクセルのオートシェイプの内容を特定のセルにコピー
- エクセルのオートシェイプの内容を特定のセルにコピーする方法について説明します。
- 特定の列に番号が記入されたエクセルシートで、吹き出しのテキストをオートシェイプに記入し、その内容を対応するセルにコピーします。
- コピーした内容を元に、続けて新しいオートシェイプを作成し、再びテキストを記入して対応するセルにコピーします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ユーザー定義関数で考えて見ます。 標準モジュールに Function shape_text(ByVal shpnm As Variant, _ Optional ByVal shtnm As Variant = "", _ Optional ByVal bknm As Variant = "") As Variant Dim bk As Workbook Dim sht As Object Application.Volatile True Set bk = ActiveWorkbook If bknm <> "" Then Set bk = Workbooks(bknm) End If Set sht = bk.ActiveSheet If shtnm <> "" Then Set sht = bk.Sheets(shtnm) End If shape_text = sht.Shapes(shpnm).TextFrame.Characters.Text Set bk = Nothing Set sht = Nothing End Function あるシートに「テキスト 1」というシェイプのテキストボックス作成し、 中に文字列を記述します( 例 Lark_0925) 適当なセルに =shape_text("テキスト 1") と指定してみてください。 テキスト 1に設定した「Lark_0925」という文字が表示されます。 留意点 オプションの計算方法は、自動に設定して置いてください。 shape_text関数を設定後に対象の図形の文字列を変更しても 直ちにshape_text関数を設定したセルに変更が反映されるわけではありません。変更は、再度そのブックを開いた時に反映されます。 この関数の大量の使用には不向きです。