CLOSE
Microsoft Copilot

こんにちは、サポート部の Yama-chan です。最近、AI の活用がすごいスピードで進んでいて、気づけば私たちの身近なところでもいろんな場面で使われています。作文やプログラミングのサポートなど、頼もしい力を発揮してくれていますよね。

文章を書くとき、AI はアイデアを整理したり、表現をブラッシュアップしたりするのに便利です。例えば、エッセイやスピーチを作る際に、話の流れを整理したり、より説得力のある言い回しを提案してくれたりします。プログラミングの世界でも、コードの最適化やバグ修正をサポートする AI ツールが広まり、開発の効率がぐっと上がっています。

個人的によく使うのは料理の分野。ちょっと大げさに言いましたが、実は冷蔵庫に残った食材を AI に分析してもらい、美味しく活用できるレシピを提案してもらっています。「あるもので何か作りたい!」というときに、AI が組み合わせを考えて、最適な調理法を教えてくれるんです。こうやって AI が進化することで、日常がもっと便利でクリエイティブになり、いろんな可能性を広げる手助けをしてくれているんですね。

閑話休題、去年の今頃は PowerBuilder のプログラミングについて AI に聞いても、さっぱりな回答しか返ってこなかったのに、最近はかなり進化していて驚きます。

はじめに

今回のブログでは、Microsoft の Copilot を利用し、PowerBuilder で実装したい機能を聞き、生成されたコードを実際に検証を行ったので、紹介します。

検証、その 1

データウィンドウに表示されているデータを Excel ファイルに出力する方法について、Copilot に以下のように聞いてみました。

PB初心者

PowerBuilder でデータウィンドウに表示されているデータを Excel ファイルに出力する方法を教えて

以下、AI からの回答です。

AI

PowerBuilder でデータウィンドウのデータを Excel ファイルに出力する方法はいくつかあります。代表的な方法として以下の 2 つがあります。

1. SaveAs メソッドを使用する

PowerBuilder の SaveAs メソッドを使うことで、データウィンドウの内容を簡単に Excel 形式で保存できます。ただし、フォントや罫線などの書式情報は保持されません。

dw_1.SaveAs("C:\output.xlsx", XLSX!, TRUE)

この方法はシンプルで、データをそのまま Excel ファイルに保存するのに適しています。

2. OLE オートメーションを使用する

Excel の OLE オートメーションを利用すると、フォントや罫線などの書式を細かく設定しながらデータを出力できます。

OLEObject excel
excel = CREATE OLEObject
excel.ConnectToNewObject("Excel.Application")
 
excel.Application.Workbooks.Add()
excel.Application.Workbooks[1].Sheets[1].Cells[1,1] = "データウィンドウの内容"
 
excel.Application.ActiveWorkbook.SaveAs("C:\output.xlsx")
excel.Application.Quit()
DESTROY excel

この方法では、Excel がインストールされている環境でのみ動作しますが、より柔軟なフォーマット調整が可能です。

詳細な手順やサンプルコードについては、こちら「OLEオートメーションを利用したExcelコントロール」の記事を参考にしてください。どちらの方法が適しているかは、用途に応じて選んでください!

提供された方法を確認しましたが、方法 1 のほうは正常にデータウィンドウのデータを Excel へ出力できましたが、方法 2 のほうはただ、新規にファイルを作成して、セルに文字列を書き込んだだけでした。残念ながら、生成されたコードはかならずしも、すべてが期待通りの回答にはならないようです。確認および検証が必要ですね。

ここでちょっとうれしいのは、「こちらを参照して」のリンク先が当社のテクニカルブログでした。作成者の明石もきっと喜ぶでしょう。。。これからもっとたくさんの情報をブログを通して、皆さんに共有していきたいです。

検証、その 2

続いて、出力された Excel ファイルに対して、先頭にタイトルを追加したいので、以下のように追加の質問をしました。

PB初心者

OLEObject を使用して、xlsx ファイル output.xlsx を開いて、先頭に 1 行を追加して、セル (1,1) に “データウィンドウの内容” をセットしてから、セル (1,1) の文字サイズを 20 にし、文字の色をブルーに変更するするサンプルを作成して

以下、AI からの回答です。

AI

以下の PowerBuilder の OLEObject を使用した Excel 操作のコードでは、output.xlsx を開き、先頭に 1 行を追加してセル (1,1) に「データウィンドウの内容」をセットし、さらに文字サイズを 20 に、文字の色を青に変更します。

OLEObject excel
integer li_rc
 
// Excel を起動
excel = Create OLEObject
li_rc = excel.ConnectToNewObject("Excel.Application")
 
if li_rc <> 0 then
    MessageBox("エラー", "Excelの起動に失敗しました")
    return
end if
 
// Excel を表示(不要なら False に)
excel.Visible = True
 
// ファイルを開く
excel.Workbooks.Open("C:\path\to\output.xlsx") 
 
// アクティブなシートを取得
excel.ActiveSheet.Rows("1:1").Insert // 先頭に1行追加
 
// セル (1,1) に値をセット
excel.ActiveSheet.Cells(1,1).Value = "データウィンドウの内容"
 
// フォントサイズを 20 に設定
excel.ActiveSheet.Cells(1,1).Font.Size = 20
 
// フォントの色を青に設定
excel.ActiveSheet.Cells(1,1).Font.Color = RGB(0, 0, 255) // RGB(0,0,255) は青色
 
// 保存して閉じる
excel.ActiveWorkbook.Save()
excel.ActiveWorkbook.Close()
 
// Excel を終了
excel.Quit()
excel.DisconnectObject()
Destroy excel

この方法はシンプルで、データをそのまま Excel ファイルに保存するのに適しています。

こちらの回答も、ただしく動作しました。あとは、AI からの回答にありましたが、必要に応じてカスタマイズするようにしましょう。

まとめ

Microsoft 社の Copilot による PowerBuilder のコード生成機能は、本当に便利で助かっています。コードを書く際の手間を減らし、より効率的に開発を進められるのは、大きなメリットですね。これからもさらに進化し、より多くの場面で活用できるようになることを期待しています。

今回は Microsoft 社の Copilot を使ってみましたが、今後は Google の Gemini も試してみて、どのような違いがあるのか検証していきたいと思います。AI ツールはそれぞれ個性があり、得意な分野も異なるので、いろいろ試してみることでより効果的な活用方法が見えてくるはずです。

みなさんもぜひ、実際に手を動かして試してみてください。使ってみることで、新しい発見があるかもしれませんし、自分に合ったツールを見つけるきっかけにもなるかもしれません。AI の力を活用して、より快適な開発を楽しみましょう!

以上、Yama-chan でした。

x instagram facebook youtube