エクセルvbaでサクラエディタの操作ができるかの質問です。
操作内容
ログ.xlsxにあ、い、う、え、おのシートがあります(5シート)
①A1からA最終行をコピーして、サクラエディタに貼り付ける
②サクラエディタを名前をつけて保存。
この時、名前は各シートのG1の値とする。保存条件は、ファイルの種類:すべてのファイル、文字コード:UTF8、改行コード:CR+LFとする。
保存場所は、ログ.xlsxと同じ場所
この作業をシート分行います。
どなたかご教示お願いします。
VBAでファイルに直接書かず、サクラエディタを経由する意味は何ですか?
BOMはつけますか?

otn様
理由は分かりません。手順を変えることはできないのです。
tatsu99様
申し訳ございません。BOMとは何ですか?
特に何も設定していないのですが、それによって変わってくるのでしょうか。ちなみに、ファイル名は〜.csvです。
初歩的な質問で大変申し訳ございません。
宜しくお願いします。
UTF-8なのかUTF-16なのかUFT-32なのかを識別するために、
ファイルの先頭3バイトに埋め込む特定のデータです。
下記URLを参照ください。
https://uxmilk.jp/48923
今回の場合はBOM無のように思われます。

度々すみません。
BOMチェックボックスにチェックを付ける工程がないので、つけないものと思います。
宜しくお願いします。

ご丁寧にありがとうございます。
BOM無しで、宜しくお願いします。
直接の回答ではありませんが、
UWSCというソフトがあります。Windowsで作業した内容を記憶し、それを繰り返し実行することが可能です。下記サイトを参照ください。
https://oxynotes.com/?p=11298
今回の場合、VBAで直接CSVファイルに出力するのは比較的簡単にできますが、
VBAで桜エディタを操作し、CSVに出力するのはやったことがなく、私の手に負えません。
申し訳ありませんが他の有識者の回答を待ってください。

ありがとうございます。
便利なソフトがあるのですね。
ただ、セキュリティが厳しくインストールできないです。
csvに出力というか、エクセルデータをサクラエディタに貼りつけて名前を各シートのG1の値(〇〇.csvとなっています)として保存する、です。
いろいろとありがとうございました。
VBAからADODB.Streamを使って直接ファイルに書き出すのがベストだと思いますが、参考として以下のような手もあります。
1. 画面操作を模倣する
UI Automationという、Windowsに組み込まれている画面操作用ライブラリを使用すれば、求める要件を完全に満たすことは恐らく可能です。
VBAでは「UI Automation Client」を参照設定すれば使用可能です。
しかし、他の手段に比べて「非常に」多くのコードを書く必要があり、なおかつ不安定です。
2. サクラエディタのマクロを実行する
サクラエディタはVBScriptなどでマクロを記述することができます。
VBScript側からExcelなども操作できるはずですので、そちらで処理を書いてしまえば
「サクラエディタの機能を使用して保存する」という要件は満たすことはできます。
あとは、VBAからサクラエディタのコマンドラインオプションでそのマクロを実行すればよいでしょう。
otnさんも言ってますがサクラエディタを経由する意味が不明です。
顧客からの要望なのかもしれませんが、どういった理由があるのか確認すべきかと思います。
特に意味がないのであればVBAから直接出力するのがベストです。
無謀な機能をわざわざ工数かけて作る必要はないでしょう。バグを生み出す確率が増えるだけです。

いろいろと回答をいただきましたが、やはり難しいということがわかりました。
「無謀な機能をわざわざ工数かけて作る必要はないでしょう。バグを生み出す確率が増えるだけです。」
この作業は諦めることとします。
有難うございました。

回答2件
あなたの回答
tips
プレビュー