「
マクロ覚え書き(開発者向け)
」を編集中 (節単位)
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
== 他のファイルのロード方法 == マクロから他のファイルを直接ロードするには以下の方法があります。 * FileSystemObject を利用する * ADODB.Stream を利用する * [[includeライブラリ]]の IO クラスを利用する === FileSystemObject を利用する === コードが短く簡単に扱えます。 また FileSystemObject 自体に、ファイルの有無やフォルダ作成の機能があります。 ただし扱える文字コードは SJIS または Unicode 限定。 <syntaxhighlight lang="javascript" copy> // Scripting.FileSystemObject の定数 var ForReading = 1; // ファイルを読み取り専用として開きます。このファイルには書き込むことができません。 var ForWriting = 2; // ファイルを書き込み専用として開きます。 var ForAppending = 8; // ファイルを開き、ファイルの最後に追加して書き込みます。 var TristateUseDefault = -2; // システム デフォルトを使ってファイルを開きます。 var TriStateTrue = -1; // ファイルを Unicode ファイルとして開きます。 var TristateFalse = 0; // ファイルを ASCII ファイルとして開きます。 var fso = new ActiveXObject("Scripting.FileSystemObject"); // ファイルの読み込み var fsIn = fso.OpenTextFile(document.FullName, ForReading, false, TristateUseDefault); var text = fsIn.ReadAll(); fsIn.Close(); Alert(text); // ファイルの書き込み var fsOut = fso.OpenTextFile("hoge.txt", ForWriting, true, TristateUseDefault); fsOut.Write(text); fsOut.Close(); </syntaxhighlight> === ADODB.Stream を利用する === 書き方は若干複雑ですが、システムが対応している文字コードであれば全て扱えます。 また(信頼性は低いが)文字コードの自動判定も可能です。 <syntaxhighlight lang="javascript" copy> var adTypeBinary = 1; // バイナリ データを表します。 var adTypeText = 2; // 既定値です。Charset で指定された文字セットにあるテキスト データを表します。 var adReadAll = -1; // 既定値です。現在の位置から EOS マーカー方向に、すべてのバイトをストリームから読み取ります。これは、バイナリ ストリームに唯一有効な StreamReadEnum 値です。 var adReadLine = -2; // ストリームから次の行を読み取ります (LineSeparator プロパティで指定)。 var adSaveCreateNotExist = 1; // 既定値です。FileName パラメータで指定したファイルがない場合は新しいファイルが作成されます。 var adSaveCreateOverWrite = 2; // FileName パラメータで指定したファイルがある場合は、現在開かれている Stream オブジェクトのデータでファイルが上書きされます。 // ファイルの読み込み var adodb = new ActiveXObject('ADODB.Stream'); adodb.Type = adTypeText; adodb.Charset = 'utf-8'; adodb.Open(); adodb.LoadFromFile(document.FullName); var text = adodb.ReadText(adReadAll); adodb.Close(); Alert(text); // ファイルの書き込み var adodb = new ActiveXObject('ADODB.Stream'); adodb.Type = adTypeText; adodb.Charset = 'utf-8'; adodb.Open(); adodb.WriteText(text); adodb.SaveToFile("hoge.txt", adSaveCreateOverWrite); adodb.Close(); </syntaxhighlight> === includeライブラリの IO クラスを利用する === ファイルの読み書きを簡単にするクラスです。 簡単に扱えることと、BOM なしの UTF-8 を書き込めることがメリットです。 逆にソースを読むしか資料がないこと、ユーザに導入してもらう必要があるのが欠点です。 <syntaxhighlight lang="javascript" copy> #include "include/IO.js" // ファイルの読み込み var text = IO.LoadFromFile(document.FullName, "utf-8"); Alert(text); // ファイルの書き込み IO.SaveToFile("hoge.txt", text, "utf-8"); </syntaxhighlight>
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク