• ベストアンサー

Excel VBA Tabコードの出力

maruru01の回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

ちなみに、VBでは予め定数が設定されており、Excel VBAでも使用できます。 TABコード:Chr(9)は vbTab が割り当てられています。 したがって、下の方のを Print #1,"NANTOKA" & vbTab & "KANTOKA" と記述することも出来ます。 その他、 キャリッジリターン:vbCr = Chr(13) ラインフィールド :vbLf = Chr(10) Windows改行    :vbCrLf = Chr(13) + Chr(10) バックスペース  :vbBack = Chr(8) などがあります。 これらの定数を使った方が、コードが見た目で分かり易いですね。 あと、これら文字コードについては、"ASCII"のキーワードでHELPを見れば載っていますよ。 では。

smatsuz
質問者

お礼

ご丁寧にありがとうございます。 「エスケープシーケンス」で検索していました。 ま、いづにしてもMS社のHelpは分かりづらいのですけど.. これからもよろしくお願いします。

関連するQ&A

  • エクセルでタブをテキスト出力する

    エクセルのシート内容をテキスト出力するPGを作成しようと思っています。 テキストの先頭行に"TAB"を追加してから出力するにはどうすればよいのでしょうか。 "TAB"なしなら出力できますが、"TAB"を付ける方法がわかりません。 下記の『シート内容』の前にカーソルのTABキーを押してもだめ。"\t"を追加してもだめでした。 何か方法はありませんでしょうか。 ご存知の方がいれば教えてください。 よろしくお願いします。 Open name For Output As #1 Print #1, シート内容 Close #1

  • コードが長すぎてエラーになってしますのですが・・・

    VB4を始めて1ヵ月の初心者です。 下記のように沢山のテキストファイルの中に、テキストボックスから 文字を代入したいのですが、コードが長すぎて「プロシージャが大きすぎます」とエラーが出てしまいます。 各テキストファイルのABCの部分は実際は100行以上有り、全体で2,000行を超えるとエラーが出てしまいます。 これはVB4の限界なのでしょうか。もし、もっと長いコードでも大丈夫な方法が有りましたら、アドバイスお願いします。 Private Sub Command1_Click() Open "C:001.txt" For Output As #1 Print #1, "A" Print #1, "B" Print #1, "C" Print #1, Text1.Text Print #1, "Z"   Close #1 Open "C:002.txt" For Output As #2 Print #2, "A" Print #2, "B" Print #2, "C" Print #5, Text2.Text Print #5, "Y" Close #2 ・ ・ ・ Open "C:100.txt" For Output As #100 Print #100, "A" Print #100, "B" Print #100, "C" Print #100, Text1.Text Print #100, "D" End Sub

  • エクセルVBAのprintステートメントについて

    エクセルVBAのprintステートメントについて エクセルVBAからテキストファイルに文字列を書き出す場合、output権限でテキストファイルを開いて、printで一行ずつ書き出すということをやっています。この際、テキストファイルの最終行の次の行に一行を書き出すのではなく、最終行の最後に追記することはできますでしょうか。 例えば、下記のようなテキストファイルの場合、cccの次の行に書き出すのではなく、 cccの直後に文字列を書きたいのです。 よろしくお願いします。 ファイルの始まり aaa bbb ccc <EOF> -- エクセル2003

  • EXCEL VBA でTEXT出力する場合

    EXCEL VBAでCSVファイルにTEXT出力したいのですが、 Write # ステートメントで出力すると出力文字列の前後に 勝手に'"'(ダブルクォーテーション)が入ってしまいます。 これを回避する方法はあるのでしょうか。

  • (ACCESS VBA)あるテキストファイルのデータを別のテキストに写す

    すいませんがたびたび質問させていただいていmynannです ACCESS VBAについての質問です まず商品マスタクエリに 商品コード 価格 001 \100 002 \150 003 \200 というデータがあり テキストファイル「text01.txt」に 「こちらのアドレスが商品のページです↓  http://goo.ne.jp/syouhin/」 この商品マスタの商品コードとtext01.txtで 「こちらのアドレスが商品のページです↓  http://goo.ne.jp/syouhin/001.html」 というようなファイルを出力するようなモジュールをつくろうと思っています 実際には商品コードは複雑ですし テキストファイルももっとたくさんの文章です で特に何を聞きたいかというと テキストファイルのテキストデータをどうやって 扱えばいいかがよくわかりません OPENステートメントとかつかうんでしょうか、、? どなたか助けてください!

  • なぜvbaコードに「#」を付けてもエラーにならないのか?

    なぜvbaコードに「#」を付けてもエラーにならないのか? Sub Sample21() Dim n As Long n = FreeFile Open "D:\Test.txt" For Output As #n Print #n, Now Close #n End Sub というテキストファイルに書き込むマクロですが 「#n」はなぜエラーにならないのですか? 標準モジュールでは、 「#」と書くとコンパイルエラーになるのに For Output As #n だと大丈夫な理由が知りたいです。 あと、気付いた事は 「#」は「&」や「=」と同じ色で表示されます。

  • エクセルVBAでリストを仕分けしてファイル出力

    会社リストからHTMLファイルを作成しています。 1つの地域で1つのファイルにしています。 地域によっては会社数が多くなってきたので、 20社ごとにファイルを別にして出力したいと考えております。 tokyo tokyo2 tokyo3 tokyo4  ・  ・  ・ G列のファイル名を20社ごとに変換するには 以下のソースをどのように改良すれば良いのか、ご教授願います。 Sub HTMLファイル出力() Dim myPath As String Dim i As Long myPath = Environ("USERPROFILE") & "\Desktop\Hoge\" Range("A:G").Sort Key1:=Range("G2"), Header:=xlYes, MatchCase:=False, _ Orientation:=xlTopToBottom For i = 2 To Range("G1").End(xlDown).Row If Range("G" & i).Text <> Range("G" & i - 1).Text Then Open myPath & Range("G" & i).Text & ".html" For Output As #1 Print #1, "<!DOCTYPE html>" & vbNewLine _ & "<html lang=""en"">" & vbNewLine _ & "<body>" & vbNewLine _ & "<div class=""span3"" id=""sidebar"">" & vbNewLine End If Print #1, "<div class=""widget"">" & vbNewLine _ & "<h4 class=""widgetTitle"">" & Range("A" & i).Text & "</h4>" & vbNewLine _ & "<ul><li>" & Range("B" & i).Text & "</li>" & vbNewLine _ & "<li>" & Range("C" & i).Text & "</li>" & vbNewLine _ & "<li>" & Range("D" & i).Text & "</li>" & vbNewLine _ & "<li>" & Range("E" & i).Text & "</li></ul></div>" & vbNewLine If Range("G" & i).Text <> Range("G" & i + 1).Text Then Print #1, "</div>" & vbNewLine & "</body>" & vbNewLine & "</html>" Close #1 End If Next End Sub

  • 商品コード一覧表をエクセルVBAで作成したいのです

    「商品コード一覧表」の作成を自動でしたいのです。 商品は6面の箱状のものです。(ルービックキューブみたいなものです。) 各面の色を自由に選択できるようになっています。 色は4種から選べるのですが、各面ごとに選べる色は異なっています。 たとえば・・・ 6面をそれぞれA面、B面・・・F面として、色の選択方法は以下のようになります。 A面はA1~A4の4色から1つを選択 B面はB1~B4の4色から1つを選択 C面はC1~C4の4色から1つを選択 ・ ・ F面はF1~F4の4色から1つを選択 このようにA面からF面まで、1つずつ色を選択して商品コードを作成します。 作成する商品コードは色を6つ横に並べた形になります。 (例1) 「A1B1C1D1E1F1」 (例2) 「A1B2C1D3E4F2」 (例3) 「A4B1C3D2E1F4」 商品コードのパターンは、各面4色ずつ選べるので、 4×4×4×4×4×4=4096 となります。 全部でパターンは4096通りあるのですが、 商品として製造するのは、このうち400~500種になります。 全体からすると、約1割程度のパターンを使って製造するのですが、 抽出方法に決まりがある訳では無く、適当にランダムに選び出します。 400個の商品コードを400行のテキストデータにして、 商品コード一覧(1つのファイル)として作成し、保存する。 これまで、これらの作業をエクセルを使ってせっせと作成していました。 最近になって本屋でエクセルVBAなるものを知り、自分でやろうと頑張ってみたのですが、 どうも、思うようなものを作ることができません。 VBAを使って自動でしたい内容は以下の点です。 1)作成する「商品コード一覧」の保存ファイル名を任意に設定できるようにする。  ・エクセルシートの(A1)セルに任意に入力(手作業で) 2)色のコードはあらかじめセル(4種×6面で24個のセル)に入力しておく(手作業で)  ・エクセルシートのA列に、たてに24個を入力  ・セル( A3~ A6)にA面の色コード  ・セル( A8~A11)にB面の色コード  ・セル(A13~A16)にC面の色コード  ・セル(A18~A21)にD面の色コード  ・セル(A23~A26)にE面の色コード  ・セル(A28~A31)にF面の色コード 3)作成する商品コードの「数」を指定する  ・基本的に400ですが、任意の数値を指定できるようにする  ・作成する数を400にしても500にしても、どの色コードも平均的に使用するようにしたい 4)「商品コード一覧」をテキストデータで保存する  ※商品コードごとに改行する(400個にした場合、400行のテキストデータ) 5)テキストデータの形    保存ファイル名,商品コード1    保存ファイル名,商品コード2    保存ファイル名,商品コード3    保存ファイル名,商品コード4     ・     ・    保存ファイル名,商品コード400  ※各行の先頭には「保存ファイル名」←セル(A1)に入力したもの   ↑どの行にも同じ「保存ファイル名」を入れる  ※保存ファイル名を商品コードの間にカンマを入れる 以上、よろしくお願い申し上げます。

  • Excel VBA 出力について

    txtファイルの出力をしたいのですが 調べながらやっていたのですがよくわかりませんでした。 あまり時間が取れない為 コードの記述方法を教えてください。 vbaの処理を行ってできたstrCompSheetNmのSheetがあります。 このSheetのデータを出力したいのです。 またこのSheetの行数は非固定になります。 出力元をどこかで指定してあげないといけないのかと思うのですが 記述方法がわからず いろいろなサイトを参考にしながらやってみても 内容が空のファイルができあがったりしてました。 出来たら 出力時 同名のファイルがあった場合 上書き又はファイル名を変更できるようにしたいのです。 いろいろ書きなおした上で下記の状態でとまっております。 ご回答のほう宜しくお願い致します。 不慣れでもうしわけないです。 現状 Dim SaveFileName As Variant Dim wScriptHost As Object, strInitDir As String Set wScriptHost = CreateObject("WScript.Shell") ChDir wScriptHost.SpecialFolders("Desktop") 'Dim YeDate As String 'YeDate = Format(Date, "yyyymmdd") SaveFileName = Application.GetSaveAsFilename(Format_ (Date, "yyyymmdd"), "テキストファイル(*.txt),*.txt,_ CSVファイル(*.csv),*.csv") If SaveFileName <> False Then Dim FlNum As Integer Dim GYO As Long Dim GYOMAX As Long FlNum = FreeFile Open ThisWorkbook.Path & SaveFileName For Output As FlNum GYO = 1 Do Until GYO > GYOMAX Print #FlNum, GYO = GYO + 1 Loop Close #intFF Else MsgBox "キャンセルがクリックされました。", vbInformation End If

  • エクセルVBAを利用したフォルダ内にあるファイルの指定エクセルシート貼り付け

    フォルダ内にある任意のファイル(拡張子のないテキストデータ)を開き、指定されたエクセルのシートに貼り付けするといった方法がわかりません。 どなたか分かる人がいましたら教えていただきたいです。 現在openなどを使用していますがファイルを指定すれば実行できるのですが任意のファイルになるとエラーになってしまいます。