質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

11180閲覧

エクセルvbaでサクラエディタ操作

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/04/02 11:56

編集2020/04/02 11:59

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

どなたかご教示お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2020/04/02 12:49

VBAでファイルに直接書かず、サクラエディタを経由する意味は何ですか?
tatsu99

2020/04/02 13:18

BOMはつけますか?
退会済みユーザー

退会済みユーザー

2020/04/02 13:42

otn様 理由は分かりません。手順を変えることはできないのです。 tatsu99様 申し訳ございません。BOMとは何ですか? 特に何も設定していないのですが、それによって変わってくるのでしょうか。ちなみに、ファイル名は〜.csvです。 初歩的な質問で大変申し訳ございません。 宜しくお願いします。
tatsu99

2020/04/02 13:50

UTF-8なのかUTF-16なのかUFT-32なのかを識別するために、 ファイルの先頭3バイトに埋め込む特定のデータです。 下記URLを参照ください。 https://uxmilk.jp/48923 今回の場合はBOM無のように思われます。
退会済みユーザー

退会済みユーザー

2020/04/02 13:50

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

退会済みユーザー

2020/04/02 13:52

ご丁寧にありがとうございます。 BOM無しで、宜しくお願いします。
tatsu99

2020/04/02 14:20

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

退会済みユーザー

2020/04/02 14:34 編集

ありがとうございます。 便利なソフトがあるのですね。 ただ、セキュリティが厳しくインストールできないです。 csvに出力というか、エクセルデータをサクラエディタに貼りつけて名前を各シートのG1の値(〇〇.csvとなっています)として保存する、です。 いろいろとありがとうございました。
imihito

2020/04/06 11:05

VBAからADODB.Streamを使って直接ファイルに書き出すのがベストだと思いますが、参考として以下のような手もあります。 1. 画面操作を模倣する UI Automationという、Windowsに組み込まれている画面操作用ライブラリを使用すれば、求める要件を完全に満たすことは恐らく可能です。 VBAでは「UI Automation Client」を参照設定すれば使用可能です。 しかし、他の手段に比べて「非常に」多くのコードを書く必要があり、なおかつ不安定です。 2. サクラエディタのマクロを実行する サクラエディタはVBScriptなどでマクロを記述することができます。 VBScript側からExcelなども操作できるはずですので、そちらで処理を書いてしまえば 「サクラエディタの機能を使用して保存する」という要件は満たすことはできます。 あとは、VBAからサクラエディタのコマンドラインオプションでそのマクロを実行すればよいでしょう。
ttyp03

2020/04/07 02:02

otnさんも言ってますがサクラエディタを経由する意味が不明です。 顧客からの要望なのかもしれませんが、どういった理由があるのか確認すべきかと思います。 特に意味がないのであればVBAから直接出力するのがベストです。 無謀な機能をわざわざ工数かけて作る必要はないでしょう。バグを生み出す確率が増えるだけです。
退会済みユーザー

退会済みユーザー

2020/04/10 15:21

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

回答2

0

ベストアンサー

今回の内容はVBAでは難しいということが分かりました。
この件はクローズしたいと思います。

投稿2020/04/10 15:22

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

もともと公式の連携機能はないのであまりよろしくない方法の紹介ですが、sendKeysというステートメントがVBAにあります。
これは指定したキー操作をウィンドウ上でしてくれるというものです。

①A1からA最終行をコピーして、

この部分は変数として保持しておき、sendKeys...(書き方はいっぱい紹介されているので調べてみてください。)
でctl+VやTab、Enterなどの操作を指定するやり方はいかがでしょうか?

投稿2020/04/07 04:47

編集2020/04/07 06:05
sugawata

総合スコア67

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問