以下のようなVBAを使用したいと思っています。
回答.xlsというエクセルファイルに、
回答者233名分の回答が一名一列に並んでいます。
この回答を、一名ずつ違うシートで分析したいと思っています。
その際、下記動作をVBAで行ないたいのですが、うまくいきません。
行ないたい動作は2列目から234列目までの各列に対して、
1,【分析】という名前のシートを複製し、一名一列(A列-AS列)の値を各1列目にコピー
2,コピーしたシートの名前を【分析-x】x=A列目の値とする
以上です。
お忙しいところ大変恐縮ではございますが、ご教授頂けると幸いでございます。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは。
質問をするときは回答者になったつもりで質問文を考えると分かりやすく伝わると思います。
●疑問点1
質問では「分析」シートを複製し「分析ーX」を作成するとなってますが、
回答1の補足に提示したコードには、「一対比較」とか「分析結果」などの最初と違うシートがある
これでは回答する方が戸惑ってしまうのでちゃんと実際のシート名を提示すること
●疑問点2
>【分析】という名前のシートを複製し、一名一列(A列-AS列)の値を各1列目にコピー
この一名一列(A列-AS列)は、一名▲一行▲(A列-AS列)の間違いではないか?
各1列目にコピーとあるが、これは、A-AS列をA列の1~45行(行方向)にコピーするということか。
これが分かると的確な回答が寄せられると思いますよ。
以上です。
No.1
- 回答日時:
私ならコピーは使いませんね。
VBAではコピー貼り付けは注意が必要。それと、もしシートを印刷するつもりなら、シートを233枚など作りません。(画面で233枚のシートを分析するなら別ですが)
元シート1枚、印刷用テンプレート的なもの1枚で、回答者ごとに変わる部分(セル)だけ、代入で変えて、PrintOutを繰り回します。
シートを233枚作るにしても
(1)Sheets.Add
(2)加えたシートがアクチブになるので、アクチブシートに
(A)不動文字(帳票見出し、項目見出しなど)の代入
(B)元シートの行から取ってくる項目の代入
(1)へ戻って繰り返しをします。
コピー方式でも、(1)と(A)がシートのコピーに変わるだけ。
シートタブ部で「移動またはコピー」の操作をして、マクロの記録をとれば判る。
ーーーー
>うまくいきません。
質問者は、えてして、どううまくいかないのか、書かない人が多い。
課題の丸投げになるということです。
この回答への補足
ご指摘ありがとうございます。
ご指摘を参考に、やりたいことを記録したマクロが、下記です。
この、マクロに対して、
・一対比較のシートをコピーする場所を、常に末尾にする
・元データで参照するデータを一行下にする
・分析結果のシートへのコピー場所を一列横にする
を行なえば完成なのですが、
こちらの知識不足で因数と、因数+1の関係がごちゃごちゃになっています。
以上丸投げの形になってしまって本当に申し訳ありませんでした。
アドバイスお願い致します。
' test Macro
'
'
Sheets("一対比較 ").Select
Sheets("一対比較 ").Copy After:=Sheets(4)
ActiveCell.FormulaR1C1 = "="
Range("B1").Select
ActiveCell.FormulaR1C1 = "=元データ!R[1]C[-1]"
Range("C3").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-1]C[3]"
Range("D3").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-1]C[3]"
Range("E3").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-1]C[3]"
Range("D4").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-2]C[5]"
Range("E4").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-2]C[5]"
Range("E5").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-3]C[6]"
Range("C10").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-8]C[9]"
Range("D10").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-8]C[8]"
Range("D10").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-8]C[9]"
Range("D11").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-9]C[10]"
Range("C16").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-14]C[12]"
Range("D16").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-14]C[12]"
Range("D17").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-15]C[13]"
Range("C22").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-20]C[15]"
Range("D22").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-20]C[15]"
Range("D23").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-21]C[16]"
Range("C28").Select
ActiveCell.FormulaR1C1 = "=元データ!R[-26]C[18]"
Range("G1").Select
ActiveCell.FormulaR1C1 = "=RC[-5]"
Range("G2").Select
Sheets("一対比較 (2)").Select
Columns("G:G").Select
Selection.Copy
Sheets("分析結果").Select
Columns("B:B").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
同じ作業を複数のシートに実行...
-
VBAで大量のファイルをシート名...
-
【ExcelVBA】全シートのセルの...
-
Excel VBA 複数行を数の分だけ...
-
ブック名、シート名を他のモジ...
-
ユーザーフォームに入力したデ...
-
エクセルのマクロについて教え...
-
実行時エラー1004「Select メソ...
-
XL:BeforeDoubleClickが動かない
-
ExcelのVBAを使い、複数シート...
-
IFステートの中にWithステート...
-
【ExcelVBA】動的にボタン、ボ...
-
エクセルのマクロでアクティブ...
-
VBAで指定シート以外の選択
-
エクセルのシート名変更で重複...
-
実行時エラー'1004': WorkSheet...
-
セルの値によって、シート見出...
-
VBA ユーザーフォーム上のチェ...
-
Excel VBA マクロ 先頭行の固定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ExcelVBA シート名を複数セルか...
-
XL:BeforeDoubleClickが動かない
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報