Appeon PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
24621 23/05/01 08:19:41 PBAppeonPB2017: PowerBuilderでExcelの操作(シートのコピー) By asano01

カテゴリ:スクリプトの記述
日付:2023年05月01日 08:19 発信者:asano01
題名:PBAppeonPB2017: PowerBuilderでExcelの操作(シートのコピー)

PowerBuilderでExcelの操作(シートのコピー)のメモです。

概要
①TEST_1.xlsxを、TEST_0.xlsxとしてコピー
②TEST_2.xlsxのSheetを、TEST_0.xlsxのSheetの後ろにコピー
※シートのコピーや移動についてはExcelのSheets.Copy メソッドを参照してください

準備:
Excelのブックを2つ用意します。
どちらもSheetは1つずつです。
TEST_1.xlsx
TEST_2.xlsx

//-----------------------------------------------------------------------------
Integer li_result
String ls_name
String ls_path, ls_path1, ls_path2
String ls_file
String ls_HomeDir

ls_HomeDir = GetCurrentDirectory()

ls_path  = ls_HomeDir + "\TEST_0.xlsx"
ls_path1 = ls_HomeDir + "\TEST_1.xlsx"
ls_path2 = ls_HomeDir + "\TEST_2.xlsx"

FileDelete(ls_path)
FileCopy(ls_path1, ls_path, TRUE)

OLEObject ole_Excel
OLEObject ole_Books, ole_Books2
OLEObject ole_Sheet, ole_Sheet2
OLEObject ole_null

ole_Excel = Create OLEObject
ole_Books = Create OLEObject
ole_Sheet = Create OLEObject
ole_Books2 = Create OLEObject
ole_Sheet2 = Create OLEObject

ole_null = Create OLEObject

// Excel接続&起動
ole_Excel.ConnectToNewObject("excel.application")
ole_Books = ole_Excel.Application.Workbooks.Open(ls_path)
ole_Sheet = ole_Books.Worksheets(1)

ole_Books2 = ole_Excel.Application.Workbooks.Open(ls_path2)
ole_Sheet2 = ole_Books2.Worksheets(1)

ole_Sheet.name  = "TEST1"
ole_Sheet2.name = "TEST2"


// Excelのコピー
TRY
Long ll_null
SetNull(ll_null)

ole_Sheet2.copy(ll_null, ole_Sheet) // 引数( Before, After )

ole_Sheet.Activate()

// Excel切断&終了

// ファイルの保存
ole_Excel.Application.Activeworkbook.Saved = True
ole_Excel.Application.ActiveWindow.ScrollRow = 1
ole_Sheet.Range("A1").Select
ole_Books.Saved = True
ole_Books.Save()
ole_Books.Close()

ole_Books2.Saved = True
ole_Books2.Close()

ole_Excel.DisConnectObject()
DESTROY ole_Sheet2
DESTROY ole_Books2
DESTROY ole_Sheet
DESTROY ole_Books
DESTROY ole_Excel

MessageBOX ("メッセージ","ファイルへの出力が完了しました。" )
SetPointer( Arrow! )

CATCH ( Throwable ex )

// Excel切断&終了
// ファイルの保存
ole_Excel.Application.Activeworkbook.Saved = false
ole_Books.Saved = True
ole_Books.Close()

ole_Books2.Saved = True
ole_Books2.Close()

ole_Excel.DisConnectObject()
DESTROY ole_Sheet2
DESTROY ole_Books2
DESTROY ole_Sheet
DESTROY ole_Books
DESTROY ole_Excel

MessageBOX ("メッセージ","エラー。" )
SetPointer( Arrow! )
END TRY


RETURN



付加情報:

PowerBuilder Version AppeonPB2017

Client SoftWare

OS Windows10
DBMS Oracle Net 12
Browser Microsoft Edge

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.