[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『写真の挿入』(64歳老人)
デジカメでとつた写真をエクセルに挿入してプリントしていますが、 写真がとても大きくて、挿入するときに30%ぐらいで挿入できる方法がありますか?。 方法があれば教えてくださいお願いします。エクセル2003です。
私が使っている方法ですが、アドインを作ってしまうのはどうでしょうか?
新規ブックを開きます。 Alt + F11 でVisualBasicEditorを開きます。 メニューの「挿入」→「標準モジュール」 開いた白い画面に以下のコードを貼り付け VisualBasicEditorを閉じます。 Excelの「ファイル」→「名前をつけて保存」で 「ファイルの種類」を Microsoft Office Excel アドイン(*.xla)を選択します。 保存場所はそのままで、適当な名前をつけて保存。 Excelを閉じて、再度起動します。 メニューの「ツール」→「アドイン」を開いて 先ほど保存したファイル名のアドインにチェックを入れてOKを押します。 再度Excelを閉じて開きなおしてみてください。
セルの範囲を適当に選択して右クリックすると一番下に 「選択範囲に写真挿入」というのが出来ているはずなのでそれを選択。 すると、選択範囲の大きさに合わせて写真が張り付きます。
'======== 以下コード ========
Private Sub Auto_Open() AddRightMenu End Sub
Private Sub Auto_Close() DelRightMenu End Sub
Private Sub AddRightMenu()
Dim RightMenu As Object, i As Integer, r As Integer, BufID(1 To 6) As Long
Get_ControlID BufID
For i = 1 To 6
With Application.CommandBars(BufID(i))
Set RightMenu = .Controls.Add(Type:=msoControlButton, temporary:=False)
With RightMenu
.Caption = "選択範囲に写真挿入"
.OnAction = "PastPic"
End With
End With
Next i
End Sub
Private Sub DelRightMenu()
Dim BufID(1 To 6) As Long, i As Long
Get_ControlID BufID
For i = 1 To 6
Application.CommandBars(BufID(i)).Reset
Next i
End Sub
Private Sub Get_ControlID(IDs() As Long)
Dim c As CommandBar, i As Long
For Each c In Application.CommandBars
If c.Name = "Cell" Or c.Name = "Column" Or c.Name = "Row" Then
i = i + 1
IDs(i) = c.Index
End If
Next c
End Sub
Private Sub PastPic()
Dim ht As Double, hl As Double, hh As Double, hw As Double
Dim ih As Double, iw As Double
Dim fn As String
If TypeName(Selection) <> "Range" Then Exit Sub
With Selection
ht = .Top
hl = .Left
hh = .Height
hw = .Width
End With
fn = Application.GetOpenFilename("写真ファイル(*.jpg),*.jpg", Title:="貼りつける写真を選択してください。")
If fn = "False" Then Exit Sub
With ActiveSheet.Pictures.Insert(fn)
If .Height > hh Then
ih = .Height
.ShapeRange.ScaleHeight hh / ih, msoFalse
.ShapeRange.ScaleWidth hh / ih, msoFalse
End If
If .Width > hw Then
iw = .Width
.ShapeRange.ScaleHeight hw / iw, msoFalse
.ShapeRange.ScaleWidth hw / iw, msoFalse
End If
.Top = ht + hh / 2 - .Height / 2
.Left = hl + hw / 2 - .Width / 2
End With
End Sub
'======== ここまで ========
(momo)
momoさんありがとうございます、出来ました。 64歳老人
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.