• ベストアンサー

VB5.0でカンマ区切りで編集した値をEXCELのシートに移送したい

VB5.0でカンマ区切りで編集した文字型変数を、Excelのシートに移送したいのです。 1項目ずつなら xlSheet.Cells(Row, col) = 変数名 でよいと思うのですが、レスポンスの問題があり、カンマ区切りで複数行にわたり編集した変数を1行で、Excelシートに移送できないかと思っています。

  • matyap
  • お礼率78% (116/147)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

>xlSheet.Cells(Row, col) = 変数名 VB5からエクセルを呼び出して、上記が出来る技量があるなら、一旦エクセルシートのA列に、CSVファイルの1レコードづつ読みこんで、(多分バッチ的処理のようですから)読みこみ終了後に、データ-区切り位置の操作に該当する、下記VBAを組みこんで、実行してはどうでしょう。 Sub Macro1() Worksheets("sheet2").Range("A1:A100").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Comma:=True End Sub この段階では結構スピードは早いようですが。

matyap
質問者

お礼

VBからはExcelシートのあるセルにカンマ区切りの変数の値を設定し、Excelシートの該当セルの変更時にカンマ区切りで分割する方法にしました。 ありがとうございました。

その他の回答 (2)

回答No.2

ありふれたやり方ですがカンマ区切りではなくタブ区切りにしてClipboardにSetTextし、ExcelのシートにPasteSpecialする方法もあります。

matyap
質問者

お礼

チャレンジしたのですが、私の理解不足でうまくいきませんでしたが、今後の参考にさせていただきます。ありがとうございました。

回答No.1

Excelの命令で OpenText というものがあります。 ExcelのVBヘルプには "テキスト ファイルを分析して読み込みます。テキスト ファイルを 1 枚のシートとして、それを含んだ新しいブックが開かれます。" とあります。 これを利用してVB5.0から実行できればいいと思います が、私は経験はありません。 私の場合はExcelのVBAから使った経験です。 1.カンマ区切りのデータをテキストファイルに書き込む 2.OpenText命令にてExcelに表示する でしょうか。

matyap
質問者

お礼

チャレンジしたのですが、私の理解不足でうまくいきませんでしたが、今後の参考にさせていただきます。ありがとうございました。

関連するQ&A

  • CSV形式で編集された項目をVBからEXCELシートへ編集し印刷

    CSV形式で編集したテキスト項目(7項目,300行)を、EXCELファイルへ編集し、印刷する方法を教えて下さい。(VBでEXCELシートへ編集し印刷したが、編集から印字までの処理時間が大きいため、帳票データをCSV形式化し、処理速度を高速化したい)簡単なサンプルがあれば助かります。 処理の概要は、以下の通り。 (1)VBで、CSV形式のテキストファイル作成後、 (2)VBからEXCELファイルを開いて (3)CSVのテキストファイルをEXCELシートへ編集 (4)VBから印刷プレビューを出し (5)印刷指示することで 全て、VBから制御する方法

  • VBS_カンマ区切りのファイルの分け方

    初めまして!ウサぴょんです♪ さっそくですが、質問させていただきます。 初めてプログラムを作ることになりましたが、まず初めに簡単なとこからやれ~と言われてやってるとこです。が、やっぱり分からなくて… 例… (1)CSVファイルを読み込みました。 (2)エディタで、読み込んだファイルを1行ずつポップアップされてます。(200行ほどループされます。) (3)ここで、問題です。  読み込んだファイルが1行ずつ、カンマ区切りで出力されてますが、そのままだと使い道がない!とのことで、変数を使ってフィールド毎に 管理したいところです。  変数の使い方がよく分からなくて、どうしても解決できず、困ってます。 どうか、助けてください! 質問が分かりにくいかも知れませんが… 言われたことがうまく言えなくて… (変数に200個くらいのデータを入れて、200個のファイルを作成したいって感じかな…)

  • VB.netでエクセルの区切りを使用したい

    現在、VB.net(2003)で エクセルの区切りを使用しようと 思ってるのですが、 「オブジェクト変数または with ブロック変数が設定されていません」 というエラーが出てしまいます。 どなたかエラーの原因が分かる方 いませんか? プログラムは、 Private xlapp As Excel.Application Private xlBook As Excel.Workbook Private xlSheet As Excel.Worksheet dim array as Array xlsheet.columns("A:A").TextToColumns(Destination:=xlsheet.Range("A1"), DataType:=xlFixedWidth, _FieldInfo:=Array(Array(0, 9), Array(1, 2), Array(10, 9), Array(13, 9), Array(14, 9), _ Array(22, 1), Array(82, 9), Array(96, 1), Array(106, 2), Array(114, 2), Array(126, 1), _ Array(127, 9), Array(132, 9), Array(172, 1), Array(182, 1), Array(192, 1), Array(202, 2), _ Array(211, 1)), TrailingMinusNumbers:=True) です

  • カンマ区切りのデータを処理する方法

    よろしくお願いします。 vb6.0 + oracle9i(oo4o)で開発しています。 元データの中には、カンマ区切り形式で全角・半角・ブランクありの可変長です。(テキストデータではありません) 例えば、 111bb,22222,333333,44bb 11,234bb,33bb,44     見たいなデータです。 カンマの数は変わりませんし、各項目自体にカンマはありえません。 この各項目を個々に取り込んで処理したいのですが... MID関数(MID$,MIDB)など色々試してみるのですが 対応しきれなくなってしまいました。 各項目に対してTRIMをかけて処理をしたいのですが、 良い方法はあるのでしょうか? カンマ間を一つの項目として判断でき、 TRIMがかけれれば一番よいのですが... 文字を一文字ずつ読んでいって、カンマを判断するしかないのでしょうか?

  • Excel 区切り機能について

    Excelについて教えてください。Excel2016です。 区切り機能を使って、『カンマやスペースで区切る』を使うと、シートを変えても、同じ設定が適用されてしまいます。 Excelを落として新規でブックを開き直しても同じ設定になってしまってることがあります。 ブックを開き直すと直ってることもあるのですが、 少なくともシートを変えただけでは同じ設定になってしまいます。 つまりシート1で区切りをつかうと同じブックでシート2を、開いてもシート2にシート1の区切り設定が適用されている。 ブックを一度すべて閉じてExcelを開き直すと初期の設定になることもありますがそれすらうまくいかず再起動が必要なこともあります 再起動なしでうまく行く場合でも、区切りを設定したブックを開きっぱなしだと、新規ブックでも同じ設定になっています。

  • エクセルのCSV(カンマ区切り)保存について教えてください

    次のようなEXCELデータをCSV(カンマ区切り)で保存した際に項目(カンマ)を2つ追加できるでしょうか? EXCEL  セルA1:AAA  セルB1:BBB  セルC1:  セルD1:CCC  セルE1:  セルF1: このデータをCSV保存してTEXTで確認すると、  AAA,BBB,,CCC となりますが、これを  AAA,BBB,,CCC,, としたいのですが、セルE1とセルF1がNULLのためカンマ区切りができません。半角スペースなどをいれるしかないのでしょうか? できればセルE1とセルF1には何も入力したくないのですが。良い方法がありましたら教えてください。

  • VB.net2003のエクセルからデータを取得したいのですが・・・

    お世話になります。 VB.NET2003でExcel XPのセルの数値を取得しTextBoxなどで表示させたいのですが、うまいこといきません。 下に考えてみたコードを書いてみます。 とりあえずExcelのA1セルの値を取得してみたいのですが、後ほどループで他のセルの値も取得したいと思っています。 これを回すと、num(1, 1) = sheet.cells(1, 1)(下から3行目)で”追加情報 : 型 'Range' から型 'String' へのキャストが有効ではありません。”とされます。 どなたかご教授お願いしますm(__)m Private Sub exel_open() '------配列設定----- Dim app As Object 'エクセルアプリケーションの定義 Dim book As Object 'ブックの定義 Dim sheet As Object 'シートの定義 Dim col, row As Integer 'colは行、rowは列 Dim num(1, 1) As String '各セルの値を取得 '------エクセルファイルを開く&表示------- app = CreateObject("Excel.Application") app.application.visible = True book = app.Workbooks.Open("D:\test.xls") 'エクセルファイルのopen sheet = book.Worksheets(1) '-----エクセルデータの読み込み------ num(1, 1) = sheet.cells(1, 1) TextBox1.Text = num(1, 1) End Sub

  • vba split関数 コンマ区切り

    エクセルに不慣れなため教えていただけたら幸いです。 A3~A11・B3~B11・C3~C11列にコンマ区切りの数字があります。 列によってはコンマで区切られた数字が3つのものと4つのものが混在しています。 split関数でコンマ区切りの数字を分割してE~H列・J~M列・O~R列に表示したいと考えています。 先ほど別の質問で下記のマクロを教えていただいたのですが、 その際は、A1~A9にあるものをD~G列に表示するというものでした。 よくよく考えると、A列のみではなく、B・C列と複数の列を コンマ区切りしたいと考えています。 このような場合は、どうしたらよいでしょうか。 vba不慣れなためわかりづらかったら申し訳ありません。 お分かりになられるかたがいらっしゃいましたら教えていただけますでしょうか。 よろしくお願いいたします。 Option Explicit ' Sub Macro1()   Dim Rout As Long   Dim Colu As Integer   Dim Expression As Variant '   For Rout = 1 To Cells(Rows.Count, "A").End(xlUp).Row     Expression = Cells(Rout, "A")     Expression = Split(Expression, ",") '     For Colu = 0 To UBound(Expression)       Cells(Rout, Colu + 4) = Expression(Colu)   Next Colu, Rout End Sub

  • VBの処理結果をEXCELシートへ出力したい

    VB6で処理した結果を、EXCELシートへ編集しプリンターへ出力する方法を教えて下さい。 (1)VBからEXCELをどのようにして、起動させるのか。 (2)EXCELファイルのオープンはどのようにするのか。 (3)BVとEXCEL間の制御が分らない。

  • エクセルでカンマ区切り文字を各行に分解するマクロを書きたい

    WindowsXP Excel2003 エクセルで以下ができるマクロを書きたいです。 B列にはカンマ区切りで文字列が入っています。 カンマ区切りの数は行によって様々です。 この表をB列のカンマ区切り文字を各行に分解したいです。 その際、A列とC列は分解前の値と同様です。 このようなマクロは書けますかね? A列     B列     C列 あ     a,b,c    100 い     d,e     200 う     f      300 え     g,h     400     ↓ A列     B列     C列 あ     a      100 あ     b      100 あ     c      100 い     d      200 い     e      200 う     f      300 え     g      400 え     h      400

専門家に質問してみよう