
下記VBAでコンパイルエラーを起こして進みません
解消法をご教授いただけると幸いです
やりたいこととしては
ボタンで任意のタブ区切りのテキストを指定し
特定のシートに値をコピーすることです
----
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
End If
Set Sh = Nothing
End Sub
----
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
という手順です。
以上です。
No.3
- 回答日時:
こんにちは、#1です。
理由は分からないようですが、エラーが出なくなったようで何よりです。
さて、前回回答時にはうっかりしていましたが、ご質問のマクロで「そのブックに」内容を読み込みたいんですね。
ヘルプを見てもらえば書いてあるんですが、Workbooks.OpenTextは
「テキスト ファイルを 1 枚のシートとして、それを含む新しいブックを開きます。」
とあるとおり、新しくファイルを開くメソッドです。
指定のシートにデータを読み込む場合には、開いたものをコピーしてもいいと思いますが、「QueryTables.Add」を使うほうが一般的かと思います。
こちらは QueryTable オブジェクトのパラメータが多くいきなり把握するのは難しいので、「マクロの記録」を使って「データ」>「テキストファイル」で開くマクロを記録し、それを元に組むといいと思います。
No.2
- 回答日時:
こんにちは。
コンパイルエラー、ということなら見るだけで判る誤記、ということになりますが、
ご提示のプロシージャには、少なくともコンパイルエラーの原因はありません。
あるとすれば、プロシージャの前後に書かれた
----
ということになるのかと思います。
---------------------------
コンパイル エラー:
修正候補: 行番号 または 行ラベル または ステートメント または ステートメントの最後
---------------------------
対処としては、----を削除するか、
' ----
のように、コメントアウトするか、どちらかになります。
もし、これが原因でないとすれば、ご提示のプロシージャ以外の記述が
原因ということになります。
以上です。
この回答への補足
ご指摘ありがとうございます
改めて確認したところコンパイルエラーはありませんでした
ただ、TSVを開くことはできても
指定したシートに値が貼り付けらませんでした
これを解消したいです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Excel(エクセル) エクセル 「実行時エラー"13":型が一致しません。」エラーについて 5 2022/05/04 10:46
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
【ExcelVBA】全シートのセルの...
-
実行時エラー'1004': WorkSheet...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
IFステートの中にWithステート...
-
VBA 存在しないシートを選...
-
実行時エラー1004「Select メソ...
-
エクセルVBA Ifでシート名が合...
-
ユーザーフォームに入力したデ...
-
Excel VBA で自然対数の関数Ln...
-
【Excel VBA】Worksheets().Act...
-
VBA 指定した回数分、別シート...
-
エクセル VBA シートのコピー
-
エクセルの絶対参照の一括操作...
-
VBAで指定シート以外の選択
-
【VBA】指定した検索条件に一致...
-
エクセルのシート名変更で重複...
-
【VB6】EXCELのシート名を変更...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
ブック名、シート名を他のモジ...
-
Excel チェックボックスにチェ...
-
VBA 検索して一致したセル...
-
エクセルで通し番号を入れてチ...
-
シートが保護されている状態で...
-
【VBA】特定の文字で改行(次の...
-
ExcelのVBAのマクロで他のシー...
-
Worksheet_Changeの内容を標準...
-
EXCELVBAを使ってシートを一定...
おすすめ情報