• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAのコンパイルエラー)

エクセルVBAのコンパイルエラーを解消する方法

このQ&Aのポイント
  • エクセルVBAでコンパイルエラーが起こり、進行できません。特定のシートに値をコピーする方法を教えてください。
  • VBAのコンパイルエラーを解消する方法をお教えください。ボタンを押すと、テキストファイルの内容を特定のシートにコピーすることができるようにしたいです。
  • コンパイルエラーが発生し、エクセルVBAが進行できません。特定のシートに、任意のタブ区切りテキストの値をコピーする方法をお教えください。

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.4

#2、cjです。#2、補足欄へのレスです。 ' ' ---- Private Sub CommandButton1_Click()   Dim Sh As Worksheet   Dim FileN As String   Set Sh = ThisWorkbook.Sheets("import") ' <-- 読込みシート指定(※)   FileN = Application.GetOpenFilename("テキストファイル,*.txt")   If FileN <> "False" Then     Workbooks.OpenText Filename:=FileN, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlTextQualifierNone, Tab:=True     ActiveSheet.Cells.CurrentRegion.Copy Destination:=Sh.Cells(Rows.Count, "A").End(xlUp).Offset(1)     ActiveWorkbook.Close False   End If   Set Sh = Nothing End Sub ' ' ----xl2010で動作確認済 原形を残して、2行追加するだけです。 シートの何処に出すか、判りませんので、とりあえず、A列を基準に最下行を採り、 最下行の一行下に出力する場合の例です。必要に合わせて応用してください。 (未使用の場合は2行め以下に出力します。) 同じ処理をするのに、方法は色々と(パッと思いつくだけでも5通り)ありますが、 テキストデータをそのまま貼るだけならば、この方法でも、 十分に一般的で、読む人に理解され易いい、と言えるもの、と私は思います。 因みに、 CommandButton1が、シート上に配置したActiveX コントロールだった場合は、 CommandButton1 のプロパティ TakeFocusOnClick を False に設定するのがベターです。 そうしておいた方が、何かとエラーが起き難くなります。  デザインモード(三角定規みたいなアイコン)  ↓  CommandButton1を右クリック  ↓  プロパティ  ↓  TakeFocusOnClick を False という手順です。 以上です。

40104
質問者

お礼

修正いただいてありがとうございます! 少しアレンジを加えてやりたいことが実現できました!

その他の回答 (3)

回答No.3

こんにちは、#1です。 理由は分からないようですが、エラーが出なくなったようで何よりです。 さて、前回回答時にはうっかりしていましたが、ご質問のマクロで「そのブックに」内容を読み込みたいんですね。 ヘルプを見てもらえば書いてあるんですが、Workbooks.OpenTextは 「テキスト ファイルを 1 枚のシートとして、それを含む新しいブックを開きます。」 とあるとおり、新しくファイルを開くメソッドです。 指定のシートにデータを読み込む場合には、開いたものをコピーしてもいいと思いますが、「QueryTables.Add」を使うほうが一般的かと思います。 こちらは QueryTable オブジェクトのパラメータが多くいきなり把握するのは難しいので、「マクロの記録」を使って「データ」>「テキストファイル」で開くマクロを記録し、それを元に組むといいと思います。

40104
質問者

お礼

ありがとうございます マクロの記録を使って「QueryTables.Add」を使ったやり方も探ってみます。

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

こんにちは。 コンパイルエラー、ということなら見るだけで判る誤記、ということになりますが、 ご提示のプロシージャには、少なくともコンパイルエラーの原因はありません。 あるとすれば、プロシージャの前後に書かれた ---- ということになるのかと思います。 --------------------------- コンパイル エラー: 修正候補: 行番号 または 行ラベル または ステートメント または ステートメントの最後 --------------------------- 対処としては、----を削除するか、 ' ---- のように、コメントアウトするか、どちらかになります。 もし、これが原因でないとすれば、ご提示のプロシージャ以外の記述が 原因ということになります。 以上です。

40104
質問者

補足

ご指摘ありがとうございます 改めて確認したところコンパイルエラーはありませんでした ただ、TSVを開くことはできても 指定したシートに値が貼り付けらませんでした これを解消したいです

回答No.1

「どこで」「どんな」エラーが出たのか書かないと意味不明ですよ。 こちらでコピペしたら問題なく動きましたし。

40104
質問者

補足

ご指摘ありがとうございます おっしゃる通りですね 改めて確認したところコンパイルエラーはありませんでした ただ、TSVを開くことはできても 指定したシートに値が貼り付けらませんでした これを解消したいです

関連するQ&A