2007年12月10日月曜日

第65回目 図形編(その3) 図形のテキスト、名前等の取得・書き込みから修正

○第65回目 図形編(その3) 図形のテキスト、名前等の取得・書き込みから修正

 今回は、作成した図形のテキスト、名前等を取得し、セルに表示します。
 手作業による、削除があるので、番号が崩れてしまいますので、現在の図形の状態を表示するものです。
 表示項目は、図形の番号、テキスト、図形の名前(この中に種類が含まれる)です。後のために、図形の番号、スペース(位置座標用)、テキスト、図形の名前の4項目を表示します。
 実行前に、貼付ける位置の先頭にカーソルをおいてください。

 まずはセルの位置を取得してください。
 次に、図形の数は、ii9 = ActiveSheet.Shapes.Count となります。
 図形のテキストと名前は、Selection.Characters.Textと Selection.Nameとなります。
 テキスト、名前の取得は次のようになります
  ActiveSheet.Shapes(i).Select
  mm1(i) = Selection.Characters.Text
  mm2(i) = Selection.Name
 これでほとんどおしまいなのです。
 あとは、図形の番号、テキスト、図形の名前を指定された場所に貼り付けるだけです。
 ほとんどロジックがないので簡単です。
 cells(gyou1,retu1)から貼り付けていきます。二列目は、座標用なので飛ばして貼り付けてください。
  Cells(gyo1 + i, retu1) = i
  Cells(gyo1 + i, retu1 + 2) = mm1(i)
  Cells(gyo1 + i, retu1 + 3) = mm2(i)
 といった具合です。
 図形の管理用の表を同時に作っておきます。イメージは下の画像のとおりです。

 【図形管理表のイメージ】

















 テキストの内容を修正するにはどうしたらよいでしょうか。セルに書き込んだテキストを修正します。そして、図形の番号と共にテキストを指定して修正をかけます。
 三列N行を指定することになります。指定してから実行してください。
 マクロは、指定範囲座標の取得から、内容の格納となります。1列、空列がありますので気をつけてください。変数はnn(i)、mm1(i)にいれておいてください。
 図形の番号をnn(i)で指定して、mm1(i)でテキストを置き換えます。
 大事な部分を抜き出すと、
  j = nn(i)
  ActiveSheet.Shapes(j).Select
  Selection.Characters.Text = mm1(i)
 となります。
  1行目と2行目以降を合体されても結構です。
  ActiveSheet.Shapes(nn(i)).Select
  Selection.Characters.Text = mm1(i)

  ですから、図形の管理表を直して、直した箇所を指定してマクロを動かす。ということになります。修正の必要のないものも、同じもので直すと考えれば、最初から最後の図形のテキストまで指定してもいいことになります。
 こんなに簡単だったんですね。手作業で行なうのとは比べ物になりません。
 前にも言いましたが、どこからかテキストの内容を持ってきて、エクセルのセルに貼付け、図形を作成するということが簡単に出来てしまいのです。修正も簡単ですね。

 次は図形の移動です。
 これも準備(座標の決めと入力)に比べたらマクロは非常に簡単です。
 本当に好きなところに移動します。面白いですよ。

0 件のコメント: