'=========================================================================================
Private Sub 画像の名前を調べる()
画像の名前 = ActiveSheet.Pictures(1).Name 'アクティブシートのインデックス番号1の画像
End Sub
'----------------------------------------------------------------------------------------
Sub 指定した画像を削除する()
ActiveSheet.Pictures(1).Delete
End Sub
'----------------------------------------------------------------------------------------
Private Sub 画像を複製する()
Set px = ActiveSheet.Pictures(1).Duplicate
End Sub
'=========================================================================================
サンプルブックのダウンロードは下記リンクをクリック
画像の名前を調べる (YNxv212_picture.xls 59KB)、 画像を削除する (YNxv212_picture_delete.xls 60KB)
画像を複製する (YNxv212_picture_duplicate.xls 44KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。
|
|
4) 図形の左上端をセルの左上端に合わせる |
 |
 |
'=========================================================================================
Sub 図形の左上端をセルの左上端に合わせる()
With Worksheets("SSS") '※1
.Shapes(1).Left = Range("B6").Left '左端 ※2
.Shapes(1).Top = .Range("B6").Top '上端 ※2
End With
End Sub
'=========================================================================================
<コメント>
※1 SSSにはシート名を記入
※2 B6には合わせたいセルのアドレスを記入
|
5) 図形とその文字列を変更可能にしてシートを保護 |
 |
 |
'=========================================================================================
Sub 図形とその文字列を変更可能にしてシートを保護する()
ActiveSheet.Shapes.AddShape(msoShapeRectangularCallout, 64.5, 33#, 89.25, _
42.75).Select '※1 オートシェイプの吹き出しを作成
With Selection
.Characters.Text = "図形の文字列" '※2 選択中の文字列を設定
.Locked = False '図形オブジェクトの変更可能
.LockedText = False '文字列を保護しない
End With
ActiveSheet.Protect DrawingObjects:=True 'シートを保護(描画オブジェクトも)
End Sub
'=========================================================================================
<コメント>
※1 このオートシェイプは例
※2 文字列は例
|
6) Excelのバージョンを表示する |
 |
 |
'=========================================================================================
Sub Excelのバージョンと商品名を表示する() 'WindowsとMacintoshの混在環境用
#If Mac Then 'Macintoshなら
Excelのバージョンと商品名を表示する_Mac用
#Else
Excelのバージョンと商品名を表示する_Win用
#End If
End Sub
'-----------------------------------------------------------------------------------------
Sub Excelのバージョンと商品名を表示する_Win用() 'Windowsパソコンだけの環境用
バージョン = Application.Version 'バージョン番号を取得
Select Case Val(バージョン)
Case Is >= 12
商品名 = "2007"
Case Is >= 11
商品名 = "2003"
Case Is >= 10
商品名 = "2002"
Case Is >= 9
商品名 = "2000"
Case Is >= 8
商品名 = "97"
Case Is >= 7
商品名 = "95"
Case Else
商品名 = "不明"
End Select
MsgBox "Excel " & 商品名 & " (V" & バージョン & ")", , "すぐマク"
End Sub
'-----------------------------------------------------------------------------------------
Sub Excelのバージョンと商品名を表示する_Mac用() 'Macintoshパソコンだけの環境用
バージョン = Application.Version
Select Case Val(バージョン)
Case Is >= 11
商品名 = "2004"
Case Is >= 10
商品名 = "v.X"
Case Is >= 9
商品名 = "2001"
Case Is >= 8
商品名 = "98"
Case Else
商品名 = "不明"
End Select
MsgBox "Excel " & 商品名 & " (V" & バージョン & ")", , "すぐマク"
End Sub
'=========================================================================================
<コメント>
※1 Excelのバージョンは[Microsoft Excel のバージョン情報]ダイアログに表示される
![[Microsoft Excel のバージョン情報]ダイアログ](Gazo/Yn/YNxv212_b.gif)
|
7) Excelのグローバル一意識別子を表示 |
 |
 |
'=========================================================================================
Sub Excelのグローバル一意識別子を表示する()
一意識別子 = Application.ProductCode
MsgBox 一意識別子, , "すぐマク"
End Sub
'=========================================================================================
|
8) プロダクトIDを表示する |
 |
 |
'=========================================================================================
Sub プロダクトIDを表示する()
バージョン = Application.Version
一意識別子 = Application.ProductCode
レジストリキー = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\" _
& バージョン & "\Registration\" & 一意識別子 & "\ProductID"
プロダクトID = CreateObject("WScript.Shell").RegRead(レジストリキー)
MsgBox プロダクトID, , "すぐマク"
End Sub
'=========================================================================================
<コメント>
※1 プロダクトIDは[Microsoft Excel のバージョン情報]ダイアログにも
表示される
|
9) OSの名前を表示する |
 |
 |
'=========================================================================================
Sub OSの名前を表示する()
osvsn = Application.OperatingSystem 'OSのバージョン情報を取り出す
If osvsn = "Windows (32-bit) NT 5.01" Then
商品名 = "Windows XP"
ElseIf osvsn = "Windows (32-bit) NT 5.00" Then
商品名 = "Windows 2000"
ElseIf osvsn = "Windows (32-bit) 4.90" Then
商品名 = "Windows Me"
ElseIf osvsn = "Windows (32-bit) 4.10" Then
商品名 = "Windows 98"
ElseIf osvsn = "Windows (32-bit) 4.00" Then
商品名 = "Windows 95"
ElseIf osvsn = "Macintosh (PowerPC) 10.13" Then
商品名 = "Mac OS X"
ElseIf osvsn = "Macintosh (PowerPC) 9.00" Then
商品名 = "Mac OS 9"
Else 'それ以外
商品名 = "不明"
End If
タイトル = "使用中のOSの名前とバージョン、商品名は"
MsgBox osvsn & Chr(13) & 商品名 & " です", vbInformation, タイトル
End Sub
'=========================================================================================
|
10) ユーザー名を表示する |
 |
 |
'=========================================================================================
Sub ユーザー名を表示する()
MsgBox Application.UserName
End Sub
'----------------------------------------------------------------------------------------
'----------------------------------------------------------------------------------------
Sub ユーザー名を表示する()
MsgBox CreateObject("WScript.Network").UserName
End Sub
'=========================================================================================
|
11) コンピュータ名を表示する |
 |
 |
'=========================================================================================
Sub コンピュータ名を表示する()
MsgBox CreateObject("WScript.Network").ComputerName
End Sub
'=========================================================================================
|
12) VBProjectにアクセスする |
 |
 |
'=========================================================================================
Sub アクティブなプロジェクトの名前を表示する() '※1
MsgBox Application.VBE.ActiveVBProject.Name
End Sub
'----------------------------------------------------------------------------------------
Sub VisualBasicプロジェクトの名前を表示する() '※1
MsgBox ThisWorkbook.VBProject.Name
End Sub
'----------------------------------------------------------------------------------------
Sub VisualBasicプロジェクトの名前を変更する() '※1
ThisWorkbook.VBProject.Name = "NewProject" '※2
End Sub
'----------------------------------------------------------------------------------------
Sub 標準モジュールをインポートする() '※1
Application.VBE.ActiveVBProject.VBComponents.Import "C:\Module1.bas" '※3、※4
End Sub
'=========================================================================================
<コメント>
※1 Excel2002でこのマクロを実行するには、[セキュリティ]ダイアログの[Visual Basic プロジェ
クトへのアクセスを信頼する]にチェックが必要(ウィルス対策のためには危険な行為です)
※2 "NewProject"には新しい名前
※3 "C:\Module1.bas"には予めエクスポートしておいたファイルを指定する
※4 新しいブックにインポートすればモジュールを追加したことになる
|
13) ハイパーリンクを挿入する |
 |
 |
'=========================================================================================
Sub ハイパーリンクを挿入する()
表示文字列 = "すぐに役立つエクセルVBAマクロ集"
アドレス = "http://www.geocities.jp/happy_ngi/"
Range("A1").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
Address:=アドレス, TextToDisplay:=表示文字列
End Sub
'-----------------------------------------------------------------------------------------
Sub ハイパーリンクと表示文字列を削除する()
Range("A1").Hyperlinks.Delete
Range("A1").ClearContents
End Sub
'=========================================================================================
|
14) ハイパーリンク先のファイルを表示する |
 |
 |
'=========================================================================================
Sub ハイパーリンク先のファイルを表示する()
ActiveWorkbook.FollowHyperlink _
Address:="http://www.happy500z.com/YNxv201.html", _
SubAddress:="#2", _
NewWindow:=True '※1、2、3、4
End Sub
'=========================================================================================
<コメント>
※1 引数Addressには目的の文書(html、xls、doc等)のアドレスを指定する
※2 引数SubAddressには目的の文書内の位置を指定(省略可)
※3 引数NewWindow: True=新しいウィンドウに表示(既定値はFalse)
※4 FollowHyperlinkメソッドは、既にダウンロードしてあるとキャッシュのファイルを表示
|
15) ExcelからWord文書を開く |
 |
 |
'=========================================================================================
Sub ExcelからWordを起動して文書を開く()
Dim ワード As Object
Dim ワード文書 As Object
Dim フルパス As String
'
フルパス = "C:\A\サンプル.doc" 'フルパスを作成
Set ワード = CreateObject("Word.Application") 'Wordを起動する
ワード.Visible = True 'Wordを表示する
Set ワード文書 = ワード.documents.Open(フルパス) 'Word文書を開く
End Sub
'-----------------------------------------------------------------------------------------
Sub ExcelからWord文書を開いて表示する()
Dim ワード文書 As Object
フォルダパス = "C:\A"
ファイル名 = "サンプル.doc"
フルパス = フォルダパス & "\" & ファイル名
Set ワード文書 = GetObject(フルパス)
Application.WindowState = xlMinimized
ワード文書.Application.Visible = True
'
MsgBox "文書を確認してください。"
Set ワード文書 = Nothing
End Sub
'=========================================================================================