Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


611 / 13645 ツリー ←次へ | 前へ→

【79428】A列の数式のシェイプを一括作成するマクロ VBA初心者 17/10/19(木) 11:11 質問[未読]
【79430】Re:A列の数式のシェイプを一括作成するマク... マナ 17/10/19(木) 18:34 発言[未読]
【79440】Re:A列の数式のシェイプを一括作成するマク... VBA初心者 17/10/20(金) 11:57 お礼[未読]

【79428】A列の数式のシェイプを一括作成するマクロ
質問  VBA初心者  - 17/10/19(木) 11:11 -

引用なし
パスワード
   下記マクロは、A列の文字列のシェイプを一括作成するものですが、
この「文字列」を「数式」にしたいです。
即ち、A列の数式のシェイプを一括作成するマクロにしたいのです。
そうなった場合の、マクロの完成形をご教示いただけないでしょうか。
改行やシェイプの形等は、変えずにお願いします。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Sub A列の文字列のシェイプを一括作成()
   
  Dim shapeType As String
  Dim shapeW As Integer
  Dim shapeH As Integer
  Dim kaigyo As Integer
   
  '=== シェイプの形と大きさを決めて下さい ここから ===
  shapeType = msoTextOrientationHorizontal  'シェイプの形
  shapeW = 130        'シェイプの大きさ(横幅)
  shapeH = 25       'シェイプの大きさ(高さ)
  kaigyo = 1           '何個おきに改行させるか
  '=== シェイプの形と大きさを決めて下さい ここまで ===
   
  Dim maxRow As Integer
  maxRow = Range("A65536").End(xlUp).Row
   
  Dim myShape As shape
     
  Dim rcode() As String 'シェイプ内の文字列その1
  ReDim rcode(maxRow)
   
  Dim shapeRow As Integer 'シェイプを作る行
  Dim shapeCol As Integer 'シェイプを作る列
  shapeRow = 0
   
  For i = 1 To maxRow
    'A列の値を取得
    rcode(i) = ActiveSheet.Cells(i, 1).Value
   
    'シェイプを作る位置を決める。
    If i Mod kaigyo = 0 Then '何個おきに改行させるか
      shapeCol = 5
      shapeRow = shapeRow + shapeH
    End If
 
   
  'オートシェイプを作成する
  Set myShape = ActiveSheet.Shapes.AddShape(Type:=shapeType, _
    Left:=shapeCol, Top:=shapeRow, Width:=shapeW, Height:=shapeH)
   
  '文字列を入れる
  myShape.Select
  Selection.Characters.Text = rcode(i) 'A列のみ
   
  shapeCol = shapeCol + shapeW
   
  Next
 
End Sub
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

【79430】Re:A列の数式のシェイプを一括作成するマ...
発言  マナ  - 17/10/19(木) 18:34 -

引用なし
パスワード
   ▼VBA初心者 さん:


>    rcode(i) = ActiveSheet.Cells(i, 1).Value

この1行を、修正したらどうなりますか。

rcode(i) = ActiveSheet.Cells(i, 1).Formula

【79440】Re:A列の数式のシェイプを一括作成するマ...
お礼  VBA初心者  - 17/10/20(金) 11:57 -

引用なし
パスワード
   ▼マナ さん:

回答ありがとうございます。

提示いただきました修正をし、実行したところ、A列の数式を文字列としてオートシェイプ内に記入していましたので、更に、
Selection.Characters.Text = rcode(i)  
の個所を
Selection.Formula = rcode(i)
にすることで、望む結果が得られました。

お時間をいただき、ありがとうございました。

611 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free