
EXCELのVBAでどうしても前に進めず困っております。
目的としているコードは、離れたセル(複数)をあらかじめCtrlキーで選択状態にしておき、選択されたセルの値のみをVBAが別のセルに並べていくというものです。
以下が私の作ったコードなのですが、思ったとおりの動作をしてくれません。
VBA初心者なもので、おかしな記述がたくさんあると思うのですが、どなたかアドバイスお願いします。
Public Sub xx()
Dim SelectArea As String
Dim TargetCell As Range
Dim a As Integer
Dim Row As Integer
Dim Column As Integer
Dim CNT1 As Integer
a = 0
Row = 0
Column = 0
For CNT1 = 1 To 10
Row = Row + 1
SelectArea = Selection.Address
Set TargetCell = Range("B3").Cells(Row - 1, Column)
If Intersect(Range(SelectArea), TargetCell) Is Nothing Then
Else
Range("A30").Cells(a, 0) = Range("B3").Cells(Row - 1, Column).Value
a = a + 1
End If
Next
End Sub
No.1ベストアンサー
- 回答日時:
例えばB列を任意に選択してA1から下に順に並べるなら、
Sub try()
Dim r As Range
Dim rr As Range
Set rr = Range("A1")
For Each r In Selection
rr.Value = r.Value
Set rr = rr.Offset(1)
Next
Set rr = Nothing
End Sub
こんな感じでも出来ますけど。
ご回答ありがとうございます。
目的通りの動作を得ることが出来ました。
意外だったのは、セルを選択した順番に値が取得されたということです。
選択状態であれば、行または列から順番に値が取得されていくのだと思っていましたが、そうではないのですね。
並び替えをすることで解決できそうですので、教えていただいたコードで組み立ててみたいと思います。
No.2
- 回答日時:
最初のうちは、変数を日本語で設定すると
コードが読みやすいと思います
コードは#1さんとかぶってます
’------------------------------------------------------------
Sub てすと()
Dim 選択されたセル全部 As Range
Dim 選択されたセルの中の一つ As Range
Dim 書き出しセル As Range
Dim 行 As Integer
Set 選択されたセル全部 = Selection
Set 書き出しセル = Range("a1")
行 = 0
For Each 選択されたセルの中の一つ In 選択されたセル全部
書き出しセル.Offset(行, 0).Value = 選択されたセルの中の一つ.Value
行 = 行 + 1
Next
Set 選択されたセル全部 = Nothing
Set 書き出しセル = Nothing
End Sub
’-------------------------------------------------------------
がんばって
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
このQ&Aを見た人はこんなQ&Aも見ています
-
複数の選択範囲の行番号を個別に取得する方法
Visual Basic(VBA)
-
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
エクセルVBA 複数行にまたがっている選択を判定するには
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
VBAで、離れた複数の列に対して処理を施すには?
Visual Basic(VBA)
-
6
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
7
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
8
UserForm1.Showでエラーになります。
工学
-
9
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
10
任意で選択したセルをテキストボックスに表示
Excel(エクセル)
-
11
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
-
12
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
13
エクセルVBAで画面の大きさを取得する方法!
Excel(エクセル)
-
14
範囲指定したセルを1つずつ飛ばす方法
Visual Basic(VBA)
-
15
Excel VBAで、ユーザーフォームをモードレス表示している間、処理を止めるには?
Visual Basic(VBA)
-
16
エクセルVBAで複数のセルの操作
Excel(エクセル)
-
17
Excelのシート上のShapeにイベントは設定できる?
Excel(エクセル)
-
18
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
19
エクセルでセルの中身が漢字かどうか識別する方法は?
Excel(エクセル)
-
20
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
枠に収まらない文字を非表示に...
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
セルをクリック⇒そのセルに入力...
-
(Excel)数字記入セルの数値の後...
-
エクセルの書式設定の表示形式...
-
Excelで数式内の文字色を一部だ...
-
Excel2010の指マークと白十字マ...
-
【エクセル】IF関数 Aまたは...
-
EXCEL VBA セルに既に入...
-
Excelでのコメント表示位置
-
【Excel】 セルの色での判断は...
-
数式を残したまま、別のセルに...
-
エクセル オートフィルタで絞...
-
excelの特定のセルの隣のセル指...
-
エクセルの一つのセルに複数の...
-
エクセル 足して割る
-
対象セル内(複数)が埋まった...
-
エクセルVBA、ファイル名をセル...
-
Excel 例A(1+9) のように番地の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
excelの特定のセルの隣のセル指...
-
枠に収まらない文字を非表示に...
-
エクセルの書式設定の表示形式...
-
数式を残したまま、別のセルに...
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
Excel 例A(1+9) のように番地の...
-
対象セル内(複数)が埋まった...
-
EXCEL VBA セルに既に入...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excelで数式内の文字色を一部だ...
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
Excelでのコメント表示位置
-
連続しないセルから最小値を引...
おすすめ情報