[Calc] ファイル選択ダイアログを開き、選択された画像を挿入する

概要

メニュー「挿入 - 画像 - ファイルから」に相当するマクロ

環境

OpenOffice.org Calc 3.0.0

コード

sub insertPicture
    dim document as Object
    dim dispather as Object

    ' get access to the document
    document = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    ' ファイル選択ダイアログの初期化
    dim filePickerDlg as Object
    filePickerDlg = createUnoService("com.sun.star.ui.dialogs.FilePicker")
    filePickerDlg.appendFilter( _
        "JPEG画像ファイル(*.jpg, *.jpeg)", "*.jpg", "*.jpeg")

    if filePickerDlg.execute = 1 then
        'ファイルが指定された場合

        dim selFiles() as String
        selFiles() = filePickerDlg.getFiles()

        dim picInfo(2) as new com.sun.star.beans.PropertyValue
        picInfo(0).Name = "FileName"
        picInfo(0).Value = selFiles(0)
        picInfo(1).Name = "FilterName"
        picInfo(1).Value = "JPEG - Joint Photograhpic Experts Group"
        picInfo(2).Name = "AsLink"
        picInfo(2).Value = false

        'ダイアログで指定された画像をアクティブセルへ挿入
        dispatcher.executeDispatch(document, ".uno:InsertGraphic", _
             "", 0, picInfo())
    end if

end sub