忍者ブログ
  • 2025.05《
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 》 2025.07
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2025/06/20 02:30 |
Shapes
Excelマクロのモジュールをそのまま貼り付け。
(会社とか家とか出先とかで見るため)
「Option Compare Binary」以下を標準モジュールに貼り付ければ、Myマクロ辞典に!
貼り付け後、「■Sub 」を「Sub 」に置き換えよう!
※公開している以上、利用は自由ですが、自己責任で。


Option Compare Binary
Option Explicit
'
'shapes(画像および図形)関連

'DoEvents用の記述(ペイントの起動)
''Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

■Sub ペイントを起動()

'Declare宣言が必要。
'→Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Shell "C:\WINDOWS\system32\mspaint.exe " & """" & f_path & """", vbNormalNoFocus
Dim hwndPTApp As Long
Do While hwndPTApp = 0&
hwndPTApp = FindWindow("MSPaintApp", f_name & " - ペイント")
DoEvents
Loop
Workbooks(myFile).Activate

End Sub

■Sub 矩形を描画()

ActiveSheet.Shapes.AddShape msoShapeRectangle, 50, 50, 100, 120

'AddShape(種類, 横位置, 縦位置, 幅, 高さ).
'msoShapeRectangle …四角形
'msoShapeOval …楕円

End Sub

■Sub 複数の画像を選択その1()

ActiveSheet.Shapes.Range(Array("Picture 4", "Rectangle 5")).Select

End Sub

■Sub 複数の画像を選択その2()

'以下の記述でもOK
ActiveSheet.Shapes.Range(Array(3, 4)).Select

'よって、貼り付けた図形番号(図形の名前)を変数に代入しても可
Dim x As Variant
x = .Shapes.Count '図形の総数(最後に貼付られた図形番号)
ActiveSheet.Shapes.Range(Array(3, x)).Select

End Sub

■Sub 複数の画像を選択その3()

Dim Pct1 As Shape
Dim Pct2 As Shape
Set Pct1 = ActiveSheet.Shapes(1)
Set Pct2 = ActiveSheet.Shapes(2)

ActiveSheet.Shapes.Range(Array(Pct1.Name, Pct2.Name)).Select

End Sub

■Sub 複数の画像を選択その4()

Dim Pct1 As Shape
Dim Pct2 As Shape
Set Pct1 = ActiveSheet.Shapes(1)
Set Pct2 = ActiveSheet.Shapes(2)

Pct1.Select
Pct2.Select False 'Falce をつけると先に選択した画像の選択をはずさずに追加選択できる

End Sub

■Sub 図形を整列その1()

ActiveSheet.Shapes.Range(Array("Picture 4", "Rectangle 5")).Select
Selection.ShapeRange.Align msoAlignCenters, False '左右中央揃え

End Sub
PR
2015/04/14 21:41 | Excelマクロ(VBA) | コメント(0)
<<OtherApp | ホーム | Sheet>>
コメント
コメントの投稿















前ページ | ホーム | 次ページ