Excel VBA質問箱 IV

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

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


71242 / 76738 ←次へ | 前へ→

【9992】Re:セルの幅の単位とオートシェイプのサイズの単位
回答  ichinose  - 03/12/27(土) 0:47 -

引用なし
パスワード
   ▼B_BOSS さん:
こんばんは。
以下に示すコードを標準モジュールに貼り付けて実行してみて下さい。
対象は、アクティブシートです。
尚、アクティブシートの次のシート(右シート)を作業シートとして
使っていますから、フリーにしといてください。
'===================================================================
Private st_col
Private st_point
Private myscale
'===================================================================
Sub main()
  With ActiveSheet
    Call open_scale(3, 10, 10)
    .Columns("a:b").ColumnWidth = 5
    .Columns("c:u").ColumnWidth = 10
    .Range("a1:a5").Value = Application.Transpose(Array("開始位置", 4, 28, 45, 60))
    .Range("b1:b5").Value = Application.Transpose(Array("サイズ", 20, 10, 7, 5))
    For idx = 2 To 5
     Call mk_rectangle(.Rows(2), .Cells(idx, 1).Value, .Cells(idx, 2).Value)
     Next
    End With
End Sub
'================================================================
Sub open_scale(開始列, 開始列までのセル巾, 目盛り巾)
  st_col = 開始列
  st_point = 開始列までのセル巾
  myscale = 目盛り巾
End Sub
'================================================================
Function mk_rectangle(rng As Range, 開始, 巾, Optional sht As Worksheet = Nothing) As Shape
  
  If sht Is Nothing Then Set sht = ActiveSheet
  cnv_left = get_point(開始 + st_point, sht.Next)
  cnv_width = get_point(巾, sht.Next)
  With rng
    Set mk_rectangle = sht.Shapes.AddShape(msoShapeRectangle, _
     cnv_left + 3.75 * (st_col - 1 + Int((開始 - 0.1) / myscale)), .Top, cnv_width + 3.75 * Int((巾 - 0.1) / myscale), .Height)
    End With
End Function
'=====================================================
Function get_point(セル幅, sht As Worksheet)
  With sht
    .Cells(1, 1).ColumnWidth = セル幅
    get_point = .Cells(1, 1).Width
   End With
End Function


これで、プロシジャーmainを実行してみて下さい。
セルA2〜A5が開始位置のデータ、セルB2〜B5をサイズデータ
として、四角が作られるはずですが・・・。
確認してみて下さい。
0 hits

【9967】セルの幅の単位とオートシェイプのサイズの単位 B_BOSS 03/12/25(木) 19:32 質問
【9968】Re:セルの幅の単位とオートシェイプのサイズ... ichinose 03/12/25(木) 20:01 回答
【9982】Re:セルの幅の単位とオートシェイプのサイズ... B_BOSS 03/12/26(金) 18:35 質問
【9983】Re:セルの幅の単位とオートシェイプのサイズ... Kein 03/12/26(金) 20:28 発言
【9992】Re:セルの幅の単位とオートシェイプのサイズ... ichinose 03/12/27(土) 0:47 回答
【9995】Re:セルの幅の単位とオートシェイプのサイズ... B-BOSS 03/12/27(土) 18:16 お礼

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