SSブログ

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
 

 


タグ:画像の追加
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0


Linuxランキング

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。