エクセルのマクロ(VBA)初心者です。
ここ数日自力で調べてみたのの、結局解決できず投稿いたします。
以前行った質問と似ているのですが、
下記ルールの③,④も加わっており、
マクロの先輩方に教えていただきたいです。
エクセルで選択した行のみテキストで掃き出すマクロ(VBA)を作りたいです。
前後の行にデータが記載されていても「選択した行のみ」ということです。
掃き出す際に以下のルールも加えます。
【ルール】
① セル内の数字やテキストを「"」(ダブルクォーテーションマーク)で囲み、セルとセルの間は「,」(カンマ)でつなぐ。例:"1","2","3"
② セル内が空欄の際は、「""」とする。
③ 2行以上選択された場合は、行と行のデータを改行してつなぐ。
④ 保存するファイル名は固定(「Sumple.txt」など)でかまわない。
以上です。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
まったくの私のミスです。
意味のない行がありました。
Sub ClickMenuAdd()
Dim Con As Control ←★意味のない行です。
''右クリックメニュー登録
Dim Con As Control
の部分の行を削除して、Ctrl + s で保存してしまってください。
再起動すれば、問題なく通ります。
なぜ、自分の所でエラーが出なかったのか、気づかなかったのか、お詫びいたします。
No.2
- 回答日時:
こんばんは。
想像しているものとは違うかもしれませんが、これは便利だと思います。
マウス・右クリックメニューに入れました。
Option Explicit
Sub Auto_Open()
'マクロは、ブックを開くと同時に設定されます。
'右クリックメニュー
Call ClickMenuAdd
End Sub
Sub PickupSentences()
'テキスト出力
Dim Rng As Range
Dim Ar As Variant
Dim buf As String
Dim fn As Variant
Dim i As Long, rw As Object
If TypeName(Selection) = "Range" Then
Set Rng = Selection
Dim fNo As Integer
fn = "Sample.txt" '出力名
fNo = FreeFile()
Open fn For Output As #fNo
For i = 1 To Rng.Rows.Count
Set rw = Rng.Rows(i)
Ar = rw.Value
Ar = Application.Index(Ar, 0, 0) '1次元化
buf = Join(Ar, """, """)
Print #fNo, """" & buf & """"
buf = "": Ar = ""
Next
Close #fNo
Beep
End If
End Sub
Sub ClickMenuAdd()
Dim Con As Control
''右クリックメニュー登録
With Application.CommandBars("CELL")
On Error Resume Next
.Controls("テキスト出力").Delete
On Error GoTo 0 '--------- //ここまでは、登録を削除して、やり直し
With .Controls.Add _
(Type:=msoControlButton, Before:=7, Temporary:=True)
.BeginGroup = False
.Caption = "テキスト出力"
.OnAction = "PickupSentences"
End With
.Controls("テキスト出力").FaceId = 2
End With
End Sub
Sub ClickMenuDelete()
''右クリックメニュー登録削除(Excelが終了すると消えますから不要です)
With Application.CommandBars("CELL")
On Error Resume Next
.Controls("テキスト出力").Delete
On Error GoTo 0
End With
End Sub
右クリックのメニューに「テキスト出力」と出てきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) マクロを教えてください 3 2023/07/31 21:57
- Excel(エクセル) マクロを教えてください 2 2023/07/30 23:05
- Excel(エクセル) 【VBA】エクセルで選択した範囲の値のみをクリップボードにコピーするコードについて 3 2023/03/08 17:41
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS で 項目名を出力せずに...
-
EXCELでシート別にPDF出力出来...
-
エクセルで縦のカラムデータを...
-
指数表示しない方法
-
Accessでエクセル出力の保存先指定
-
アクセスクエリ(複数)→マクロ...
-
Accessレポート出力時の範囲指定
-
teraterm から起動したプログラ...
-
Access データベースの最適化を...
-
AccessでUTF-8のtxtデータを出力
-
エクセル 入力フォームのデータ...
-
アクセスからエクスポートする...
-
Accessから指定した画像データ...
-
Access内の任意のクエリを指定...
-
access 更新ボタンを作る
-
ACCESSで毎回CSVファイルをテー...
-
Access Excel出力する保存先を...
-
AccessのデータをExcelの決まっ...
-
【Excel】[Expression.Error] ...
-
SQLPLUSで結果を画面に表示しない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスクエリ(複数)→マクロ...
-
ACCESS で 項目名を出力せずに...
-
エクセルで縦のカラムデータを...
-
EXCELでシート別にPDF出力出来...
-
Access Excel出力する保存先を...
-
Accessでエクセル出力の保存先指定
-
指数表示しない方法
-
teraterm から起動したプログラ...
-
Access データベースの最適化を...
-
Access内の任意のクエリを指定...
-
AccessでUTF-8のtxtデータを出力
-
AccessのデータをExcelの決まっ...
-
エクセル 入力フォームのデータ...
-
access 更新ボタンを作る
-
アクセスからエクセルの起動が...
-
Accessから指定した画像データ...
-
MS SQL上にあるデータベースの...
-
Accessレポート出力時の範囲指定
-
Accessにはマクロ記録って無い...
-
クエリデータの取り出し
おすすめ情報
No.2の回答者の方へ
便利なアイデアをありがとうございます。
ただそのままマクロに登録したところ画像のようなエラーが出てしまいました。
何か設定に不足があるのでしょうか。
初心者なものですいません。
No.3の回答へ
できました!
すごいですね。ありがとうございます。
右クリックのメニューからマクロを実行するのはとても便利ですね。
すいません、もしできたら最後にこちらについて教えてください。
現在だと、テキストの保存先が私の場合「C:\Users\●●\Documents」になってしまいます。
デスクトップに保存するにはどう記述したら良いでしょうか。
よろしくお願いいたします。