ExcelVBAでDXライブラリを使ってみた

アバター
imamikay
記事: 0
登録日時: 11年前

ExcelVBAでDXライブラリを使ってみた

投稿記事 by imamikay » 11年前

昔、自分のPCスペックの問題でまともな開発環境がExcelVBAしかなかったのですが、
それでもDXライブラリで作るようなゲームをプログラムしてみたいと思った事がありました。

その時に、VBAから「DxLib.dll」を扱えるように標準モジュールを作って
ゲームプログラミングしてたわけですが、最近は開発環境も整ってVisual C++での開発がほとんどです。

ですが、最近になって、データを整理していたら作ったモジュールデータが出てきたので、
自分への覚え書きも兼ねて使い方をメモしてみようと思います。

作業環境など:
windows7(64bit)
Excel2010
DXライブラリ(VisualC#用(Ver3.11b))

使用方法:
1.マクロ有効ブックで新規作成したブックと同じ場所に「DxLib.dll」を配置
2.ブックを開いてVisual Basic Editor(Ctrl + F11)を起動する
3.ファイルのインポート(Ctrl + M)で「DX.bas」を指定
4.標準モジュールかThisWorkbookにプログラムコードを書いていく
 ただし、相対パスを有効にしないと「DxLib.dll」を参照できないため
 ChDrive ActiveWorkbook.Path
 ChDir ActiveWorkbook.Path
 をソースコードの初めに書き入れておく

使用上注意:
・ClearDrawScreenを呼ぶとフリーズして止まるため、旧関数ClsDrawScreenを使う事
・DxLib_Endを呼ぶとExcelごと終了するがウィンドウを最小化してからであればウィンドウのみを終了できる
・3D関係関数はVECTOR構造体に値を渡す方法がわからないため未実装
・引数省略の知識が無いため(というかできるの?)一部の関数の引数が以上に多い
 引数は、省略するとエラーが出るかフリーズする
・自分が使ったことがない関数は、定義されていても仮定義状態なので正常に動く保証がない
 そういった関数は引数の問題上フリーズする事があるため見つけ次第、定義を修正する必要がある

(以上)

なんというか・・・
調べても同じ事をやってる人がいなかったのですが、
よく考えたら、特別理由がない限りVBAでやる必要ありませんねw
個人的には、シートの値が使えるとかインプットボックス等の機能がC言語より扱いやすいなど
利点もあると思うのですがね;
添付ファイル

[拡張子 zip は無効化されているため、表示できません]

最後に編集したユーザー imamikay on 2013年12月14日(土) 19:41 [ 編集 2 回目 ]

アバター
みけCAT
記事: 6734
登録日時: 14年前

Re: ExcelVBAでDXライブラリを使ってみた

投稿記事 by みけCAT » 11年前

imamikay さんが書きました:調べても同じ事をやってる人がいなかったのですが
確かに全く同じとはいえないですね…
ExcelでDXライブラリ • C言語交流フォーラム ~ mixC++ ~

アバター
imamikay
記事: 0
登録日時: 11年前

RE: ExcelVBAでDXライブラリを使ってみた

投稿記事 by imamikay » 11年前

ありゃ(汗

ほとんど同じことやってますね・・・

既出だったとは;;知りませんでしたorz
(Google検索で、ヒットしなかったのでつい;)

ところで、コードを拝見させてもらいましたが、
ClearDrawScreenって引数(0)で動作するんですね!
今までフリーズしてたのが、普通に動きました^^
最後に編集したユーザー imamikay on 2013年12月14日(土) 14:50 [ 編集 1 回目 ]

ISLe
記事: 2650
登録日時: 14年前

Re: ExcelVBAでDXライブラリを使ってみた

投稿記事 by ISLe » 11年前

仕事場のPCに入ってるのしか見たことないですが、Excelってスペックの高いPCじゃないとまともに使えないイメージなんですよね。

わたしはExpressが出る前からWindows SDK(当時はPlatform SDK)付属のコンパイラを使ってたこともあってVisual C++はIDEを使わずに済ませることが多いです。

アバター
imamikay
記事: 0
登録日時: 11年前

Re: ExcelVBAでDXライブラリを使ってみた

投稿記事 by imamikay » 11年前

はじめまして、ISLe さん
ISLe さんが書きました:仕事場のPCに入ってるのしか見たことないですが、Excelってスペックの高いPCじゃないとまともに使えないイメージなんですよね。
え!そうなんですか。
一般イメージとして、動作の軽いものだとおもってました;

実際、旧スペックはintel PentiumでExcel2007でしたがエクセルはサクサクだったので;
ISLe さんが書きました:わたしはExpressが出る前からWindows SDK(当時はPlatform SDK)付属のコンパイラを使ってたこともあってVisual C++はIDEを使わずに済ませることが多いです。
そういう事もできるんですね!

でも、IDEを使わないとなるとコマンドライン上の操作でコンパイルとかしてるってことですか?

もし、そうとなると私の能力でできるか怪しいですが、確かに軽い動作で作業が行えそうですね。
最後に編集したユーザー imamikay on 2013年12月14日(土) 19:12 [ 編集 1 回目 ]