• ベストアンサー

エクセルのVBAについて

ある装置のデータをRS232C経由でMSCommを利用し、EXCELに直接取り込みたいのですが、そのデータにはタブ区切りが設定してあるのでEXCELの1つのセルに1区切りのデータごと出力されてほしいのですが、区切られず1つのセルにすべて出力されてしまいます。どうしたらよいのでしょうか宜しくお願いします。

  • gtoku
  • お礼率33% (5/15)

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

  • ベストアンサー
回答No.4

MSComm1_OnCommをこんな感じで変更してみたら どうなりますか? Private Sub MSComm1_OnComm() Dim dto As New DataObject '(注) dim R as integer dim C as integer dim Buffer as string R = ActiveCell.Row c = ActiveCell.Column Select Case MSComm1.CommEvent Case comEvReceive Buffer = MSComm1.Input 'Cells(R, c) = Cells(R, c) & Buffer dto.SetText Buffer dto.PutInClipboard ActiveSheet.Paste   Cells(R + 1, c).Select End Select End Sub

gtoku
質問者

お礼

できました!!どうもありがとうございます。

その他の回答 (3)

回答No.3

NO.1です EXCELではクリップボードオブジェクトはなかったような? で、 Sub aaa() Dim dto As New DataObject '(注) Dim a As String a = "AAA" & vbTab & "BBB" & vbTab & "123" dto.SetText a$ dto.PutInClipboard ActiveSheet.Paste End Sub を参考にしてください。 (注) Microsoft Forms 2.0 Object Libraryを参照設定します。

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

Windowsでは復帰+改行のコードがあれば、各行にデータがセットされると思います。そうすれば、データー区切り位置・・・で、カンマの位置で、分離されて、各セルに分けることが簡単にできます。 区切りらしいもののコードはどうなってますか。 MSCommを利用するなどのところまでやるつもりであれば、そんなことは判っているかもしれないが。 学生さんかと思うが、先輩など、回りにそれを知っている人いませんか。

gtoku
質問者

補足

返答ありがとうございます。実はVBの知識などほとんどない一般社会人です。ネットで調べながらみようみまねでやっていますが改行するコードをどのように書けばよいかわかりません。現在下記のようになっており(1)のコマンドボタンをクリックするとデータを抽出するようになっています。助言お願いいたします。 Private Sub MSComm1_OnComm() R = ActiveCell.Row c = ActiveCell.Column Select Case MSComm1.CommEvent Case comEvReceive Buffer = MSComm1.Input Cells(R, c) = Cells(R, c) & Buffer   Cells(R + 1, c).Select End Select End Sub Private Sub 開く_Click() ・・・・・(1) MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.RThreshold = 18 MSComm1.SThreshold = 1 If MSComm1.PortOpen = False Then MSComm1.PortOpen = True Else End If Cells(1, 1).Select End Sub

回答No.1

取得したデータを直接セルに書き込まずに、 一度クリップボードに入れてから貼り付ければ OKです。

関連するQ&A

  • エクセル2003で作ったVBAが2007で動かない

    現在、エクセル2003で作成したVBAがエクセル2007だと、マクロを有効にして起動させようとするとコンパイルエラーとなって動作しない現象が起きていて困っています。 どなたか、解決方法をご教授頂けないでしょうか? ・VBAを含んだファイルを開いて、マクロを有効にすると ”コンパイルエラー:変数が定義されていません” というエラーボックスが出てきてプログラムの矢印のポイントがPrivate Sub User Form_Initialize() のところを指したまま止まってしまう。 ・このVBAはエクセルの表の書かれたデータをRS-232Cで出力するようなプログラムが使われていて、MSCommというものが使われています。この関連のプログラムが2003と2007では互換がないということはありますでしょうか? どうぞ、よろしくお願い致します。

  • VBAでテキストファイルのデータを読み込んでExcelで開く+α

    テキストファイルをExcelファイルとして読み込む事が多く、その量に加えデータの並び方が特殊な為困っております。 テキストファイルのデータの並びをExcelで上下逆順に読み込ませるにはどのようにすればいいでしょうか? また、まとめて複数のテキストファイルを上記の状態で自動的にシートごとに分けて出力させたりしたいのですが。 (例-1行目は無視) ---テキストデータ(タブ区切り)--- 0 0 10 02 11 05 02 15 01 20 25 12 15 10 ---Excelシートデータ--- 0 0 12 15 10 01 20 25 05 02 15 10 02 11

  • CSVデータをエクセルのセルに入れたい・・・

    よろしくお願いします。 CSVデータを当方ではエクセルで開いてます。 カンマ区切りごとのデータがエクセルのセルに1つずつ入力されてるので 不用データを行や列ごと削除できるので便利に使っていました。 が、他のPCでデータを同じように加工しようとしたところ、最初のセルに全て連続して入っているという状態で、上記のような作業が出来ませんでした。 5台のPCともXPでエクセル2003です。 テキスト形式・タブ区切り・カンマ区切りなどなど専門的なことが良く判っていないため、説明もうまくできませんが、PCの設定なのか?セルに1つづつ分ける方法があるのか?何でわたしのだけ? ?? 引継ぎが出来ず困っておりますのでどなたかお願いします。教えてください!!

  • ACCESSでエクセルの書式設定

    ACCESSでエクセルにデータを出力し書式を設定しています。 数字の出力で、マイナスの場合赤字になるようにしたいのですが、上手くいきません。 エクセルの右クリック→セルの書式設定→ 表示形式タブの分類を数値、桁区切りにチェックし、-1,234の赤字 の書式はどのように設定すれば出来るのでしょうか? 現在 ExcelSheet.Cells(行,列).NumberFormat = "#,##0" で設定しています。

  • CSV→Excelに展開したいのですが・・・

    CSVファイルをExcelファイルに展開したのですが、 データがよってしまったりして項目がずれてしまいます。 恐らく区切りの設定がおかしいのだとは思いますが上手くいきません。 今開きたいファイルはタブで区切ってあるものです。 ちなみに他の人はシステムからCSVで落とした段階でセルにわかれて きれいに見れているのですが私の場合はひとつのセルに全ての項目が タブで区切られて入っている状況です。これと関係ありますか?? 初歩的な話なのだと思うのですが。。。 ご存知の方、設定方法を教えて下さい。

  • Excel2010のTABテキスト貼付けについて

    Excel2010のデータの貼り付けについて教えてください。 Excel2010にてタブ区切りのテキストを貼り付けたところ、単一のセルに すべてのデータが貼りついてしまいます。 新しいシートを開いても変わりませんが、新しいブックを立ち上げると タブ毎にセルを(列を)区切って貼り付ける事が出来ます。 なお、Excelのセル(複数列)をコピーした場合は、正しく貼り付けられます。 タブ区切りテキストだけで発生しています。 具体的には 下記のようなタブ区切りテキストをコピーしてExcelに貼り付けました あいうえお{TAB}かきくけこ Excel上では一つのセルをActiveにして貼り付け(テキスト形式、Unicode テキスト双方を試しました)をしたところActiveセルに「あいうえおかきくけこ」 と表示されます。 LEN関数で文字数をカウントすると11文字となっており間にタブが挿入され ている事が確認できます 解消方法についてご存知の方がいらっしゃいましたらご教授頂けますよう お願いいたします。m(__)m

  • excelからtab区切りテキストへの変換で…。

    過去の質問を検索しましたが、無い様ですので質問させてください。 excelでためたデータベースをtab区切りテキストに変換したのですが、 できあがったtab区切りテキストをテキストエディタで開きますと、 (" ")が勝手にデータの両端についてしまうのです。 例えば(18,000)という数字データがあったとします、 それをタブ区切りテキストに書き出すと、("18,000")という風になってしまいます。 そこで、とりあえずすべてのデータの書式を文字列にしてやりますと、(18000)となってしまいますから、 文字列として(,)を追加したのですが、 やっぱりtab区切りテキストに変換すると(" ")がついてきます。 ただし、普通の文字のフィールドは大丈夫です。 (" ")を消す方法はないでしょうか? 少々わかりにくい説明ですが、何卒よろしくお願いします。 あと、追加で質問なのですが、桁数の多い数字が勝手に16進数?に変わってしまいます。 こちらの方も原因が分かりませんので教えていただければ幸いです。 ちなみに検証してみたexcelのバージョンは Win版 Excel2000 Mac版 Excel98 です。 設定は特にいじっていませんので、初期設定だと思います。 よろしくお願いします。

  • RS232CのデータをEXCELに取込みたい

    設定時間ごとに10個の計測器から同時にRS232Cを経由してパソコンの EXCELに計測データを取込みデータ収集したいと考えています。 PC環境はWINDOWS XPを使用しています。 10個のデータを通信ソフト(ハイパーターミナル以外でも可)を経由して EXCELに取込むソフトがありましたら教えてください。 またEXCEL VBAでソフトを作成できるソースプログラムをお持ちで したらこれを改造すればいいという指摘でもありがたいです。 宜しくお願いします。

  • エクセルVBAで

    いつもお世話になっています。 エクセルVBAでセルのデータを読み込んでテキストファイルを出力するプログラムを書いています。 その際に、セル内のデータで「00」や「01」などのデータを読み込んで、そのままテキスト出力させたい場合関数の指定をStringにした場合「0」や「1」と出てしまいます。 「00」や「01」でテキスト出力させる方法を教えてください。 よろしくお願いいたします。

  • テキスト形式(.txt)をエクセルで読み込むときに1桁目の「0」を読み込みたい

    タブ区切りで作成されたテキストデータがあります。 これをエクセルで読み込むと、タブ区切りからセル区切りに自動的に変換されますが、 テキストに「0」から始まるデータがある場合、エクセルに変換されると数値として読み取ってしまうので、2桁目以降の0以外の数字を1桁目として認識してしまいます。 つまり、 「テキストデータを「文字列」のデータとしてエクセルで読み取る」 方法を探しています。 ご存知の方、教えてください。 よろしくお願いいたします。

専門家に質問してみよう