TOP - 一覧

ファイル操作の使用例

ファイル操作を行うための準備

■概要

ファイル操作はセキュリティの関係で以下の制限があります。
お気軽にファイル操作する場合はパス指定なしでファイル名のみを指定して使う方法です。
この場合はデフォルトでは実行ファイル直下にuserfileにファイルを作成します。
別のフォルダに保存する場合はファイル操作できるフォルダを事前に指定しておく必要があります。

■ファイル操作準備例

メニュー[マクロ]-[マクロ登録]でマクロ登録画面を起動させます。
マクロ登録画面のメニュー[オプション]-[キーワード編集]でキーワード編集画面に遷移します。
 

ID:9の「指定可能パス」を指定したパスがファイル操作できるパスとなります。
例としては"C:\00tmp\00work"と指定した場合は"C:\00tmp\00work"フォルダ以下のファイル操作が可能となります。
"C:\00tmp\00work"の他に"C:\00tmp\01work"でも操作したい場合はセミコロンで区切って記述することで可能です。
記述例としては"C:\00tmp\00work;C:\00tmp\01work"となります。
※大文字・小文字の判断はありません。

指定をせずにfile_exp("C:\00tmp\abc.txt");という風にして実行すると下図のように『指定出来ないパスです。(キーワード編集で許可が必要)』
というエラーになります。

  "


ID:8の「カレントパス」はファイルパスの指定でフルパスを指定しない場合のファイル操作先を変更する場合は
ここで指定することで変更することが出来ます。


ファイルをエクスポートする

■概要

一番簡単なエクスポート例です。
画面から行うエクスポートと同様でシートの内容をCSV区切り、TAB区切りのテキストで出力します。

当画像のデータを元に、出力データとします。
 

■一番単純なエクスポート例

開いているシートの内容をabc.txtのファイルにエクスポートします。
下記の例ではデフォルトではUTF8、TAB区切りで出力されます。

file_exp("abc.txt");         // 上書き禁止の例
file_exp("abc.txt", true);   // 上書きOKの例


出力例
  


■CSV形式でエクスポートする例

file_opt(FILE_OPT_SEP, ",");
file_exp("abc.txt", true);


出力例
 

■文字コードをSHIFT-JISにする例

先に説明した区切り文字の変更例と同様にfile_opt()関数を使用することで変更することが出来ますが
何を指定するかを忘れると思うのでヘルプを見るより手軽に探す方法としては表次郎マクロ画面についているテキストエディタを
使うことで簡単に探すことができることを想定しています。

"file_"と入力すると下記にファイル関連の命令が出るのでオプションを設定する意味の"file_opt"を選択します。

【小話】
本来なら"file_option"と命名したほうがわかりやすいですが略したのは次の指定でも同じような名称を入力する方法で
キーワードを探しやすくするためでも同じ名称を使うようにしたので長すぎることになるので略しました。
 

次にオプションのどの種類を指定するかですが関数名と同じ名称で大文字で
"FILE_OPT_"と入力すると該当の定数が右下に種類が一覧します。
今回は文字コードの変更なので1行目の"FILE_OPT_CHAR"を選択することで
文字種類の変更を指定したことになります。

 

さらに種類で指定した文字"CHAR_"を大文字で書くことで下に文字コードの種類が
一覧されるので今回の場合は3行目の"CHAR_SJIS"を選択することでSHIFT-JISの
文字コードを指定することができます。
ただし、種類によってはtrue, falseですむ場合や区切り文字のように直接
値を指定する場合は表示されません。
 

file_opt(FILE_OPT_CHAR, CHAR_SJIS);
file_exp("abc.txt", true);

エクスポートする位置を決める

■概要

サンプルの内容だと1行目のタイトルはデータとしては不要なことが多いです。
1行目を除いて出力する方法は下記です。
file_exp()の3つめの引数にstr_range()を指定することで出力する範囲を指定することが出来ます。
str_range()の引数はセルの上位置、左位置、下位置、右位置の順で指定します。
下位置と右位置は指定が無い場合は最終行、列となります。

file_exp("abc.txt", true, str_range(2,1));

出力例

 


エクスポートするシートを決める

■概要

どのシートを開いていても出力するシートを決めて出力したい場合の指定方法です。
下記の例ではSheet1の内容をエクスポートしています。

sheet st = "Sheet1";
st.file_exp("abc.txt", true);