• 締切済み

エクセルVBAで…

VBAからshell関数を使って、 FTPを起動して、 サーバーからテキストファイル(txt)を、 ローカルへ落としたいのですが… 落とすとEUCコードになってしまいます… FTPのオプションとかでshift-jisとかに直せるのでしょうか? よろしくお願いします(o*。_。)oペコッ

みんなの回答

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは、KenKen_SP です。 FTP の設定とかとは別の視点から。ADO の Stream オブジェクトを使って、 テキストファイルの文字コードを EUC から Shift_JIS に変換するサンプル です。 FTP --> テキストファイル --> 文字コード変換 -->本来の処理 のような流れではどうでしょうか。 Sub TEST_MACRO()   '引数で渡すパスが同一なら上書きになります   Call CONV_EUC2SJIS("C:\test.txt", "C:\test.txt") End Sub '// EUC --> Shift_JIS Charaset Convert Proc Public Function CONV_EUC2SJIS( _   ByRef EUC_FILEPATH As String, _   ByRef JIS_FILEPATH As String) As Boolean   '参照設定するなら:Microsoft ActiveX Data Objects x.x Library      '今回は実行時バインドでやってますが本当は参照設定した方が○   Dim EUC As Object ' ADODB.Stream '--EUC 用   Dim JIS As Object ' ADODB.Stream '--Shift_JIS用        Set EUC = CreateObject("ADODB.Stream")   With EUC     .Charset = "EUC-JP"     .Open   End With   Set JIS = CreateObject("ADODB.Stream")   With JIS     .Charset = "Shift_JIS"     .Open   End With   EUC.LoadFromFile EUC_FILEPATH   EUC.CopyTo JIS   JIS.SaveToFile JIS_FILEPATH, 2   JIS.Close: EUC.Close   Set JIS = Nothing   Set EUC = Nothing End Function

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 世の中にあるFTPクライアントは、ダウンロード後やアップロード前にプログラム内部でEUC←→SJIS変換をしています。なので、Windows標準のftp.exeにはありません。  shell関数でftp.exeを呼んでいるのなら、nkf.exeを使うなどではどうでしょ~か。

関連するQ&A

  • Perlの文字コード変換について

    ActivePerl-5.14を使っているのですが、文字コードの変換はどのようにすればいいのでしょうか。 ローカル環境で動かしているのですが、Shift-JISのテキストを読み込んで、EUC-JPに変換したいと思っているのですが、 今まで5.8を使っていたので、Jcodeを使って、&Jcode::convert(\$txt,'euc'); としていたのですが、5.14ですと use Jcode;  の時点でエラーになってしまいます。 use Encode; を使って、 from_to($txt, 'shiftjis', 'euc'); としてみましたが、 from_to($txt, 'shiftjis', 'euc'); のところでエラーになってしまいます。 ActivePerl-5.14ですと、どのように文字コードの変換をすればいいのでしょうか。 どなたか教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • HP 文字コードの指定

    文字コードについて質問いたします。 サーバー移管でHPを作るにあたり、「EUC-JP」か「Shift_JIS」で迷っています。 今まではYAHOOで「EUC-JP」をそのまま流れで使ってましたが、今回もサーバーの流れで 「Shift_JIS」にしようとしていましたが、いろいろと調べると ・「Shift_JIS」は多くのHPが使っている ・「EUC-JP」はコピーされにくい というのがわかりました。 やはり「EUC-JP」にしたほうがいいのでしょうか? 一般的にはどういった基準で選別されているのでしょうか?

  • EXCELのVBAのコマンドボタンの動作について

    EXCELのVBAでコマンドボタンを押したとき、あるテキストを、単にテキストとして開く為に、以下のコーディングをしました。 しかし、「shell」コマンドは実行形式でないといけないようで、うまく行きません。どなたか、判る方いらっしゃいますか? --------------------------------------------- wk_path = ThisWorkbook.Path & "\memo1.txt" wk_rc = Shell(wk_path, vbNormalFocus) --------------------------------------------- (エラーコード:メッセージ) 5:プロシジャーの呼び出し、または引数が不正です。

  • エクセルVBAで、バッチ処理を起動すると・・・

    Windows/XP/pro、エクセル2002 使用です。 c:\autocsvフォルダーに、MS-DOSコマンドを使ってFTPを自動実行しサーバーからCSVを自動的に取得する.TXTファイルと、バッチファイルの.batファイルをおいています。 参考URL http://www.ponko2.com/ftp_bat.html この.batファイルをVBAから呼び出して実行させるように下記のコードを記述ましたが、ファイルは起動するものの、CSVファイルを取得(またはLogin)できません。Openメソッドを使ってもうまくいきませんでした。実行する関数の間違いと思っていますが、それとも、VBAからバッチファイルを実行する場合の何か決まりごと等があるのでしょうか? Sub test() Dim str As Variant str = Shell("c:\autocsv\auto.bat", vbNormalFocus) Application.Wait Now + TimeValue("00:00:10") End Sub (VBAの実行をステップインを使って1行ずつ実行してもファイルを取得できません) なお、.batファイルを単独で起動させた場合は、問題なくcsvファイルの取得はできています。 お手数ですが、ご指導いただけますようお願いします。

  • 改行コードについて

    Kent-Web(http://www.kent-web.com/)さんのショッピングカートを構築しています。 自分のサーバーでは簡単に構築できるのに、実際に運営するサーバーに移すとInternalServerErrorが出てしまいます。 いろいろ調べた結果、サーバーにアップすると改行部分が化けてきちんと改行されず、エラーが出ていることがわかりました。 FTPエディターなどで直接入力すると動くのですが、手で入力もしてられないので、FTPでアップしたいのですが、改行コードをeucに変換しても、なぜかサーバーに上げると改行コードが狂ってしまっています。 そこで質問なのですが、 1、一般的なサーバーでは、文字コード、改行コードともShift-JISで動く(いわゆるフリースクリプトを持ってきてサーバーに上げても動く)のに、このサーバーでは動かないので、Apacheなりの設定が一般的なサーバーと違うのではないかと考えています。 サーバー管理者にどうするように言えばいいでしょうか。 2、この問題がエディターによるものなのか、FTPクライアントによるものなのかわからないのですが、Shift-JISで書いたものをきちんとeucに変換し、FTPできるエディターとFTPクライアントはないでしょうか。 現在、エディターはViVi、FTPはFFFTPを使っています。 きちんとエディターが変換作業を行えているのかよくわからないです。 以上、よろしくお願いします。

    • ベストアンサー
    • CGI
  • Encode.pmで「髙」(ハシゴ高)が文字化けする

    Perl5.8で、EUCで保存されたテキストファイルを読み込み、Shift-JISで保存しようとしてます。 EUCからShift-JISへの変換は、Encode.pmを使用しています。 テキストファイルに「髙」(ハシゴ高 0xFCE2)や「﨑」が入っていた場合、変換されたデータは「?」(0x3F)になってしまいます。 「髙」や「﨑」をPerlを使用してEUCからShift-JISする方法はありませんでしょうか? ====================================== use Encode qw/ from_to /; open IN, "data.txt"; $data = <IN>; close IN; from_to( $data, 'euc-jp','shiftjis'); open OUT, ">data2.txt"; print OUT $data; close OUT; ====================================== 宜しくお願いします。

    • ベストアンサー
    • Perl
  • EUCで保存できない

    テキストの内容を「11111」とか「adfas」など 単純な内容を書き、保存する際に文字コードを「EUC」 改行コードを「CR+LF」に設定し保存しても 再度開くときにShift-jisになってしまいます。 もちろんそこで再度SJISになったファイルを EUCで保存し再読み込み・文字コード指定保存をしても 画面上はEUCになりますが 保存し、ウインドウを閉じて再度開くとShift-jisになってしまいます。 現在使用しているテキストエディターは terapadです。emエディターでも同様です。 通常のフリーで落ちている EUCで書かれたファイルを ダウンロードして開いてみると EUCで書き変えることが可能です。 なぜか新規にEUCでファイルが作れなくなってしまいました。 どなたかお詳しい方のお返事をお待ちしています。

    • ベストアンサー
    • HTML
  • EXCEL VBAの日付関数について

    EXCEL VBAの日付関数のことでお聞きしたいことがあります。 エクセルの関数でワークデイ関数がありますが、例えば C1セル: =WORKDAY(A1,10,B1:B10) これをVBAのコードで書くと、どういうコードになるのでしょうか。 VBAの関数については詳細に書かれたテキストを持っておらず、WorksheetFunctionを使ってチャレンジしてみましたが どうも上手くいきませんでした。 初歩的な質問かも知れませんが、どうぞよろしくお願いいたします。

  • VBAからxdoc2txtを利用したい

    Access2000のVBAを使っています。pdfをテキストに変換するxdoc2txtというテキストコンバータを利用して、指定した場所にあるpdfファイルのテキストをAccessVBAのString変数に渡したいのですが、うまくいきません。shellを使ったり、HPで公開されているサンプルコードを使ってみたりしたのですが、うまくプログラムが走ってくれません。どうか知識をもっていらっしゃる方がいたらご教示いただけないでしょうか。 http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html

  • HTML formタグの文字コードについて

    各サイトのフォーム<form>をまとめて1つのテキストにしています。 文字コードはShift-jisです。 元のページがShift-jisの場合、問題なく動作するのですが、 EUCやUTF-8の場合、テキストボックスに入力した2バイト文字が 化けてしまいます。 これらのサイトの<form>をShift-jisで動作するようにはできない でしょうか?

    • ベストアンサー
    • HTML

専門家に質問してみよう