- 12/02 Information!!
- 07/07 【グラブル】バハムートを最終上限解放
- 07/06 【グラブル】光有利の古戦場
- 06/14 【動物園】愛媛県立とべ動物園
- 05/31 【グラブル】開放したシスとエッセルの使用感
This is new entry
今回からしばらくはエクセル関連の操作を紹介していきます。
一番コアな技術部分になっています。
とにかく難しいことはおいといて、素直にエクセルを開く方法。
1|var objExcel = new ActiveXObject("Excel.Application");
2|objExcel.Visible = true;
3|objExcel.Workbooks.Open(ファイルパス);
4|objExcel.DisplayAlerts = false;
5|objExcel = null;
これだけです。
1行目でオブジェクトにエクセルを指定します。
2行目のvisibleはエクセルを表示するかどうかの指定です。ここでは表示にしています。
3行目でエクセルを開いています。ファイルパスの部分には開きたいエクセルの絶対パスが
指定されます。
4行目はアラート関連を表示しないようにします。ユーザーの返答を求めるような動作をされると困るからです。というのもLimechatの5秒ルールのためです。
5行目はオブジェクトの開放です。忘れずに。
次に、このすでに開いているエクセルに何か処理をする場合の方法です。
1|var objExcel;
2|objExcel = new ActiveXObject("Excel.Application");
3|objExcel = GetObject(ファイルパス);
4|objExcel.Sheets("Sheet1").Select;
//////処理///////
objExcel.Save();
objExcel = null;
開くときとは違ってgetobjectを使います。
これは既に開いている状態のエクセルをまさにゲットオブジェクトして、なにか処理をして、終わったら保存とオブジェクトの開放を行うっていう内容です。
何度もアクセスする場合、オブジェクトの開放しとかないと次回動きがおかしくなるので、開放はきっちりと。
処理については、色々出来ます。
ここからはエクセルマクロのVBAと同じ要領なので、行いたい操作をマクロ録画してあとからソース確認するといいと思います。
一例を以下に
・特定のセルへの書き込み
objExcel.ActiveSheet.Cells(X,Y).Value = XXXX;
セル(X.Y)に変数XXXXの中身を書き込みます。
もし、特定の文字を書きこみたい場合には
XXXXではなくダブルクオーテーションで囲みます。
シングルクオオーテーションでもいいっすけど。
objExcel.ActiveSheet.Cells(X,Y).Value = "何か文字";
消したい時はnullを代入すればセルは初期化されます。
・行の挿入
objExcel.ActiveSheet.rows("2:2").Insert;
こうすると2行目に1列行を挿入します。
・セルの読み込み
書き込みの逆です
XXXX = objExcel.ActiveSheet.Cells(X,Y).Value;
変数XXXXにセルの中身が入ります。
こんな感じで。
次回は、エクセルの多重起動について。
一番コアな技術部分になっています。
とにかく難しいことはおいといて、素直にエクセルを開く方法。
1|var objExcel = new ActiveXObject("Excel.Application");
2|objExcel.Visible = true;
3|objExcel.Workbooks.Open(ファイルパス);
4|objExcel.DisplayAlerts = false;
5|objExcel = null;
これだけです。
1行目でオブジェクトにエクセルを指定します。
2行目のvisibleはエクセルを表示するかどうかの指定です。ここでは表示にしています。
3行目でエクセルを開いています。ファイルパスの部分には開きたいエクセルの絶対パスが
指定されます。
4行目はアラート関連を表示しないようにします。ユーザーの返答を求めるような動作をされると困るからです。というのもLimechatの5秒ルールのためです。
5行目はオブジェクトの開放です。忘れずに。
次に、このすでに開いているエクセルに何か処理をする場合の方法です。
1|var objExcel;
2|objExcel = new ActiveXObject("Excel.Application");
3|objExcel = GetObject(ファイルパス);
4|objExcel.Sheets("Sheet1").Select;
//////処理///////
objExcel.Save();
objExcel = null;
開くときとは違ってgetobjectを使います。
これは既に開いている状態のエクセルをまさにゲットオブジェクトして、なにか処理をして、終わったら保存とオブジェクトの開放を行うっていう内容です。
何度もアクセスする場合、オブジェクトの開放しとかないと次回動きがおかしくなるので、開放はきっちりと。
処理については、色々出来ます。
ここからはエクセルマクロのVBAと同じ要領なので、行いたい操作をマクロ録画してあとからソース確認するといいと思います。
一例を以下に
・特定のセルへの書き込み
objExcel.ActiveSheet.Cells(X,Y).Value = XXXX;
セル(X.Y)に変数XXXXの中身を書き込みます。
もし、特定の文字を書きこみたい場合には
XXXXではなくダブルクオーテーションで囲みます。
シングルクオオーテーションでもいいっすけど。
objExcel.ActiveSheet.Cells(X,Y).Value = "何か文字";
消したい時はnullを代入すればセルは初期化されます。
・行の挿入
objExcel.ActiveSheet.rows("2:2").Insert;
こうすると2行目に1列行を挿入します。
・セルの読み込み
書き込みの逆です
XXXX = objExcel.ActiveSheet.Cells(X,Y).Value;
変数XXXXにセルの中身が入ります。
こんな感じで。
次回は、エクセルの多重起動について。
PR
COMMENT
プロフィール
HN:
komyu/シュクレール/修造
性別:
非公開
自己紹介:
こうぶつはけものみみとのーびす(♀)とエリーン
主にROとTERAとラノベと雑多なkomyuの日記帳です。
主にROとTERAとラノベと雑多なkomyuの日記帳です。
TERAキャラ紹介
シュクレール(バサ)
syuzo(エレ)
サケマス(アチャ)
その他サブ
ウリエルキゥィス(スレLv54)
Vermillion(サラLv56)
パズドラ
157,318,362
フレンド募集中
枠なきゃ増やす
最終プレイ3日以上になったら消す
カレンダー
03 | 2025/04 | 05 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
最新記事
(12/02)
(07/07)
(07/06)
(06/14)
(05/31)
ブログ内検索
最新コメント