プロが教える店舗&オフィスのセキュリティ対策術

オートシェイプの自動文字入力方法を探しています。
どなたかご存知の方がいらっしゃいましたら教えて頂けないでしょうか?

■環境
Windows2000

■条件
・エクセルに200個ほどの文字が入力されている。
・これらの文字列を自動的にオートシェイプの『書類』内に記入した状態でオートシェイプを生成したい。

VBを使えばこのような事が実現出来るのではないかと思うのですが、調べ方が悪いのか見つからなかったので、皆様のお知恵を拝借させて頂ければ幸いです。よろしくお願いいたします。

A 回答 (2件)

>を自動的にオートシェイプの『書類』内に記入した状態でオートシェイプを生成したい。


というよりも、オートシェイプを作成し、テキストを持たせられるものには。テキストを設定するという手順でしょう。
ーー
>・エクセルに200個ほどの文字が入力されている。
どういうデータの状態か?
エクセルの質問するときは、(ブック)シート。行、列と内容を例示して質問に書かないと、やりたいことだけ書いて、ほとんど丸投げの質問に例示も出来ないのですよ。解決するのはしつもんしゃのはずです。
>オートシェイプのどの種類か、種類の多少、さえ書いてないで、質問としては常識的には不備でしょう。
ーー
#1で書いておられるように、マクロの記録ぐらい、取れるか?、取れるなら、少しいじくってみて、壁にぶつかって質問してください。
丸投げは質問規約違反。
    • good
    • 0
この回答へのお礼

imogasiさま

質問の仕方が悪く、不快な思いをさせたことお詫び申し上げます。
次に質問をする際には、適切な文言でいたします。
ご回答ありがとうございました。

お礼日時:2008/11/27 21:55

>調べ方が悪いのか見つからなかったので~~


手作業で類似のことができるものは、自動記録で記録させてみて、その中のキーとなるプロパティやメソッドをヘルプで確認すれば、間単に調べられます。 この回答も、その方法で作成しています。

>オートシェイプの『書類』内に記入~~
『書類』というオートシェイプに心当たりがありませんが、テキストボックスという意味でいいのでしょうか?

適当に、以下を仮定して参考までに作成してみました。適宜、アレンジしてお使いください。
*アクティブシート内のセルの値または計算式の結果で、空白ではないものについて、それぞれオートシェイプ(テキストボックス)内に記入する。
*シェイプの大きさや位置は適当。
*フォントサイズや枠、背景色などの設定は省略。(デフォルト)
Sub test()
Dim sh As Worksheet
Dim rng0 As Range, rang1 As Range

Set sh = ActiveSheet
Set rng0 = sh.Cells.SpecialCells(xlCellTypeConstants)
Set rng1 = sh.Cells.SpecialCells(xlCellTypeFormulas)
Set rng0 = Union(rng0, rng1)

For Each rng1 In rng0
 If rng1.Text <> "" Then
  sh.Shapes.AddTextbox(msoTextOrientationHorizontal, _
    rng1.Left + 5, rng1.Top + 5, rng1.Width, rng1.Height) _
    .TextFrame.Characters.Text = rng1.Text
 End If
Next rng1
End Sub
    • good
    • 0
この回答へのお礼

fujillin さま

今回ExcelVBAを初めて使用することになりまして、
質問文のような形でしかまとめることが出来ませんでした。
大変失礼いたしました。

サンプルコードを作成して頂きありがとうございます。
こちらを元に模索してみます。

【追記】
オートシェイプの『書類』というのは、オートシェイプ→フローチャート→書類で出てくるものです。質問文に『フローチャート』を入れ忘れておりました。失礼いたしました。

お礼日時:2008/11/27 21:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!