[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『写真の挿入』(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.