LibreOffice CalcBasic シートに複数の画像を挿入するマクロの実験 [LibreOffice Calc Basic]
LibreOffice CalcBasic シートに複数の画像を挿入するマクロの実験
始めに画像を書き込む範囲を選択する(画像1個分)
Sub PicS_insert_draw()
'ファイル選択ダイアログで複数の画像ファイルを選択して、シートに書き込む
Dim aSize as new com.sun.star.awt.Size
Dim aPos as new com.sun.star.awt.Point
' drawpage = ThisComponent.CurrentController.activesheet.getDrawPage()
' shape = ThisComponent.createInstance("com.sun.star.drawing.GraphicObjectShape")
'----------------------------------------------------------------------------------------------------
'選択範囲のサイズ、位置
With ThisComponent.CurrentController.selection
pX= .Position.X
pY=.Position.Y
sH=.Size.Height
sW=.Size.Width
End With
'-----------------------------------------------------------------------------------------------------
'FilePickerで複数画像URL取得
' ファイル選択ダイアログ 初期化
oFilePicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
'複数選択モードTrue
'setMultiSelectionMode(False) →.getFiles()
'setMultiSelectionMode(True) →selectedFiles()
oFilePicker.setMultiSelectionMode(True)
'フィルター 画像ファイル
oFilePicker.appendFilter("画像ファイル","*.jpg;*.jpeg;*.png;*.gif;*.bmp")
'表示ディレクトリ
sDir = "file:///home/telstar/ピクチャ"
oFilePicker.setDisplayDirectory(sDir)
'画像選択ダイアログ表示
fpd=oFilePicker.execute
'ファイルが選択されたか? fpd=1 選択された、fpd<>1キャンセルされた
if fpd <> 1 then
Exit Sub
end if
'ファイルURL取得
For i=0 to Ubound(oFilePicker.selectedFiles())
'選択画像をDrawPageにインサートするための設定 Loop内で
'Loop外で設定すると連続画像挿入がうまく出来無い
drawpage = ThisComponent.CurrentController.activesheet.getDrawPage()
shape = ThisComponent.createInstance("com.sun.star.drawing.GraphicObjectShape")
'ConvertToURLでfile://を取り除く システムファイル名をファイルURLへ変換
shape.GraphicURL = ConvertToURL(oFilePicker.selectedFiles(i))
'-------------------------------------------------------------------------------------------------------------------
'画像の挿入
celHeight=452 '画像間隔 標準cell高さ
aSize.Width = sW
aSize.Height = sH
aPos.X = pX
aPos.Y = pY+(sH+celHeight)*i
shape.Size = aSize
shape.Position = aPos
drawpage.add(shape)
Next i
End Sub
Cialis Generika Per Vorkasse tynckivy https://acialisd.com/# - cheap cialis online Pathsace comprar cialis generico foro Issuelegem <a href=https://acialisd.com/#>buy cialis online 20mg</a> stoosyhoodia Amex Duo Amoxicillin
by SWADWAY (2020-07-11 10:56)