DrawPage.add()を使った画像の追加マクロの実験 LibreOffice Calc Basic [LibreOffice Calc Basic]
DrawPage.add()を使った画像の追加マクロの実験 LibreOffice Calc Basic
- 画像を挿入してセル幅合わせてリサイズすると、拡大した時に綺麗でない
- DrowPageAdd()で画像を追加した場合は、拡大しても綺麗
- かな?
- VBAではLoadPictureで画像サイズを調べられるが、BasicではLoadPictureがない?
- ttp://officetanaka.net/excel/vba/tips/tips87.htm
Sub Pic_Add()
'ファイル選択ダイアログを開いて、画像フォーマットファイルを選択
'選択セル位置に画像を挿入
'選択セル幅に合わせてリサイズ(縦横比維持) する実験
dim oDoc as Object
dim dispather as Object
dim filePickerDlg as Object
' 設定
oSelection=ThisComponent.CurrentSelection
oSheetIndex=ThisComponent.CurrentController.ActiveSheet.RangeAddress.Sheet
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
' ファイル選択ダイアログ 初期化
filePickerDlg = createUnoService("com.sun.star.ui.dialogs.FilePicker")
'フィルター 画像ファイル
filePickerDlg.appendFilter("画像ファイル","*jpg;*.jpeg;*.png;*.gif;*.bmp")
'画像選択ダイアログ表示
fpd=filePickerDlg.execute
'ファイルが選択されたか? fpd=1 選択された、fpd<>1キャンセルされた
if fpd <> 1 then
Exit Sub
end if
'挿入画像ファイルのパス
url1=filePickerDlg.selectedFiles(0)
'print url1
'画像の挿入
oDrawPage = ThisComponent.getDrawPages().getByIndex(oSheetIndex)
oGraphicShape = ThisComponent.createInstance("com.sun.star.drawing.GraphicObjectShape")
aPoint = CreateUnoStruct("com.sun.star.awt.Point")
aSize = CreateUnoStruct("com.sun.star.awt.Size")
aPoint.X = oSelection.Position.X
aPoint.Y = oSelection.POsition.Y
aSize.Width = oSelection.Size.Width
aSize.Height = oSelection.Size.Height
oGraphicShape.setPosition(aPoint)
oGraphicShape.setSize(aSize)
oGraphicShape.GraphicURL = url1
oDrawPage.add(oGraphicShape)
End sub
コメント 0