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)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
エクセルVBA 複数行にまたがっている選択を判定するには
Excel(エクセル)
-
6
エクセルVBAで複数のセルの操作
Excel(エクセル)
-
7
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
8
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
9
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
10
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
13
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
14
エクセルVBA 別シートの複数のセルの値をコピーする方法
Excel(エクセル)
-
15
別のシートから値を取得するとき
Visual Basic(VBA)
-
16
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
17
VBAで、離れた複数の列に対して処理を施すには?
Visual Basic(VBA)
-
18
Excel にて条件付き書式の色にさらに上塗りをしたいです。
Excel(エクセル)
-
19
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
20
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】IF関数 Aまたは...
-
エクセル 足して割る
-
エクセルで指定したセルのどれ...
-
EXCEL VBA セルに既に入...
-
エクセル②
-
Excelでのコメント表示位置
-
Excelで数式内の文字色を一部だ...
-
Excelの関数で、性別が男なら『...
-
対象セル内(複数)が埋まった...
-
excelのCOUNTIF関数で、『範囲=...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
セルをクリック⇒そのセルに入力...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
(Excel)数字記入セルの数値の後...
-
VBAで特定の文字が入力されたセ...
-
貼り付けで複数セルに貼り付けたい
-
エクセルのセル交点に丸印をつ...
-
枠に収まらない文字を非表示に...
-
【Excel】 セルの色での判断は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excel2003 の『コメント』の編...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
複数のセルのいずれかに数字が...
-
枠に収まらない文字を非表示に...
-
excelの特定のセルの隣のセル指...
おすすめ情報