No.1
- 回答日時:
マクロが万能といえど、コピペを超えるものではありません。
内容が各行で違うなら、結局はその内容をマクロの中に作りこまなくてはいけないので(何か法則があればべつですが)。計算式の変わる法則がわからないとここでは回答できません。
コピペ(オートフィル)して、手作業で変更しかないように見受けられます。
No.2
- 回答日時:
ご希望に近い処理はおそらくマクロでできるとは
思いますが、結局部分的にイレギュラーな値入力が
必要であれば「自動」で入力できるわけはありません。
なにをどうしたいかもう一度よくまとめてから
再度ご質問なさるほうがよろしいかと思います。
この回答への補足
ご回答ありがとうございます。
行ごとに入力するイレギュラーな数値は
まったくイレギュラーな物ではなく、
1つの決まった処理を、行ごとに行えばOKなんです。
行が変わっても処理方法は同じです。
よって、1行目のA列~G列で入力、処理した物を
マクロで記憶させて、1行目と同じ処理を2行目以降
自動的に繰り返すように指示できればOKなんです。
A列 B列 C列 D列 E列 F列 G列
1行 あ
2行 こ
3行 し
A列にはイレギュラーなひらがな文字が並んでいて、
その文字を拾いながら、
B列、C列、D列、E列、F列、G列に
各処理を行い、1行目は完成します
1行目の処理はマクロで記憶させたのですが
同じ処理を自動的に2行目以降にやらせる方法が
わかりません。各行の処理が、全て計算式であれば、コピペで対応できるのですが、計算で無い処理が
含まれているので、マクロでやろうと思っています。
因みに、一行の処理は出来ていて、マクロ処理で記録
できています。
No.3
- 回答日時:
質問の表現が、しっくりこないです。
それと計算式を具体的に記してください。
マクロの記録を参考にできても、繰り返しは、別途自分で考えないと
いけない。
計算をするのには、マクロの記録は私なら使いません。
>膨大なデーターを表に入力するのに
シートが出来上がったところをイメージしてください。
そのセルの中には
(A)手入力、コピーして入力など演算以外で、値がセットされたセル
(B)(A)を四則演算や関数で計算した値の表示されているセル
の2種あります。VBAでやると、セルに関数式がセットされない
場合もあります。関数式をセットして計算させるもできます。しかし前者のほうが
適当でしょう。
(A)は計算ではどうしようもありません。入力しないとなりません。
(B)はVBAで計算で算出できます。
(B)の計算ですが、第X行目の「(B)に分類される全セルについて考えて」、第X行以外のセルの値を使いますか。
使わなければ簡単です。
また「YYならZZを計算、出なければVVを計算」のように、条件を噛ませますか?
それらを書かないで、質問しても具体的に書けない。質問者のレベルでは、具体的に回答を書かないと、ヒントだけでは解決しないのではないかと思いますが。
この回答への補足
ご回答、ありがとうございます。
A列 B列 C列 D列
27行 1815
28行 1816
29行 1819
30行 1820
A列には、ランダムな4桁の値が並んでいて、
それを使ってB,C,D列を完成していきます
B,C,D列の値は、計算ではなく、A列の数字を
文字列として扱います。27行目のB~D列までの
処理をマクロで記憶させて、2行目以降同じ処理
を繰り返し自動で処理させたいと考えています。
27行目のB列には、=RSS|'1815.T'!銘柄名称
C列には、=RSS|'1815.T'!現在値
D列には、=RSS|'1815.T'!前日比率
と入力します。各行で対応させなければならない値は、A列の値の4桁の数字のみで、他の入力内容は、
行が変わっても同じです。27行目の場合は、1815、
28行目の場合は、1816を対応させなければなりません。
27行目の処理をマクロで記録させた内容は、以下の通りです。
Range("A27").Select
ActiveCell.FormulaR1C1 = "1815"
Range("B27").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=RSS|'1815.T'!銘柄名称"
Range("C27").Select
ActiveCell.FormulaR1C1 = "=RSS|'1815.T'!現在値"
Range("D27").Select
ActiveCell.FormulaR1C1 = "=RSS|'1815.T'!前日比率"
Range("E27").Select
End Sub
これを、28行目以降も同じように入力し、
自動的に100行位処理させたいのです。
27行目には、“1815”という値が対応していますが、
28行目以降は、“1816”という値を対応させなければ
なりません。各行ごとに対応させる値が、A列に
入っています。その他の処理は行が違っても
同じ入力内容なので、繰り返しができれば
OKだと思うのですが・・
対応させる値は、コピペの作業をマクロ処理で記憶させてあります。いかがでしょうか?
アドバイスお願いします。
No.4
- 回答日時:
B列~D列の計算式に定数を使う理由があるのでしょうか?A列のセルを参照すればよい話だと思うんですが。
RSSっていう関数が良くわからないのですが、
たとえばB列に
=RSS|A1&"'.T'!銘柄名称"
というように内容を参照すれば良いような。
式の一般化はできないのでしょうか?できれば、それをコピペでいけるんですが。
No.5
- 回答日時:
#3です。
Sub test02()
d = Range("a65536").End(xlUp).Row 'データ最下行の行数字を取得
For i = 2 To d
x = "Sheet" & Cells(i, "A") 'シート名文字列を作る
Set sh2 = Worksheets(x)
Cells(i, "B") = sh2.Cells(1, "A") '以下3行はs適当に修正してください
Cells(i, "C") = sh2.Cells(2, "A")
Cells(i, "D") = sh2.Cells(3, "A")
Set sh2 = Nothing
Next i
End Sub
補足の意味が十分取れてないのですがよろしく。
、=RSS|'1815.T'!銘柄名称
の部分。
No.6
- 回答日時:
>、=RSS|'1815.T'!銘柄名称
の「RSS」は恐らく、質問者さんのPCで使用している株価データソフトではないですか。
この作業には、「For・・・Next」の繰返し処理が適していると思います。
下に参考コードを載せました。
なお、各コードの前の空白は、全角です。コピーする際は、削除するか、半角に変えて下さい。
Private Sub test()
Dim iRow As Integer '行指定
Dim iNumber As Integer 'A列4桁数字
Application.DisplayAlerts = False '*注
iNumber = 1815 'A列の4桁数字初期指定
For iRow = 27 To 30 '27行目(始まり行)~30行目(終り行)
Cells(iRow, 1).Select 'A列をセレクト(アクティブ化)
Cells(iRow, 1) = iNumber 'A列に数字を入力
Cells(iRow, 2) = "=RSS|'" & iNumber & ".T'!銘柄名称" 'B列に式を入力
Cells(iRow, 3) = "=RSS|'" & iNumber & ".T'!現在値" 'C列に式を入力
Cells(iRow, 4) = "=RSS|'" & iNumber & ".T'!前日比率" 'D列に式を入力
iNumber = iNumber + 1 '4桁数字を1つ繰上げ
Next iRow
Application.DisplayAlerts = True '*注
End Sub
*注,コードの中にある「Application.・・・」は、私のPC環境では「RSS」に相当するソフトが無いため、エラー(#REF!警告)が出て、マクロがストップするので入れています。
質問者さんのPCでエラーが出ないなら、必要ありません。
この回答への補足
ありがとうございます。
さっそくコピペしてみたのですが、
“コンパイルエラー”と表示されて、実行できません。
コピペした内容は以下の通りです。
おかしな所をご指摘くだされば幸いです。
Sub Macro4()
'
' Macro4 Macro
' マクロ記録日 : 2005/11/3 ユーザー名 : A1
Private Sub test()
Dim iRow As Integer '行指定
Dim iNumber As Integer 'A列4桁数字
iNumber = 1815 'A列の4桁数字初期指定
For iRow = 27 To 30 '27行目(始まり行)~30行目(終り行)
Cells(iRow, 1).Select 'A列をセレクト(アクティブ化)
Cells(iRow, 1) = iNumber 'A列に数字を入力
Cells(iRow, 2) = "=RSS|'" & iNumber & ".T'!銘柄名称" 'B列に式を入力
Cells(iRow, 3) = "=RSS|'" & iNumber & ".T'!現在値" 'C列に式を入力
Cells(iRow, 4) = "=RSS|'" & iNumber & ".T'!前日比率" 'D列に式を入力
iNumber = iNumber + 1 '4桁数字を1つ繰上げ
Next iRow
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) エクセルについて質問です 1 2022/12/10 11:49
- Visual Basic(VBA) 【マクロ】表への繰り返し転記について 1 2022/11/19 16:30
- Excel(エクセル) スプレッドシートのマクロで値の入力があるセルの範囲を指定する方法を教えて下さい 2 2022/04/05 17:29
- Excel(エクセル) Excelのマクロについて 2 2022/06/14 03:38
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) エクセルのセル値に対応してマクロを実行する方法を教えてください セルA1が「1」の時にマクロ名「マク 2 2022/06/19 18:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
Excel上でのデータ数字が連番で...
-
SUMに含まれる範囲から特定のセ...
-
数式が入ったセルを含めて、数...
-
入退社日より各月末の在籍者数...
-
別のセルに値が入力されたら、...
-
列の数字に100をかけたい
-
HYPERLINKとADDRESSとMATCHの組...
-
エクセルで表示されている数字...
-
エクセル:横長の表を改行して...
-
スペースとスペースの間の文字...
-
エクセルでセルの値分の個数の...
-
エクセルで住所の番地順に並べ...
-
エクセルで、毎日の走行距離(...
-
【EXCEL】指定したセルの値を他...
-
アルファベットを含む数をエク...
-
時間を「昼間」と「夜間」に分...
-
エクセルのsumifでかけ算してか...
-
エクセルにデータを入力すると...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
SUMに含まれる範囲から特定のセ...
-
数式が入ったセルを含めて、数...
-
Excel上でのデータ数字が連番で...
-
列の数字に100をかけたい
-
スペースとスペースの間の文字...
-
別のセルに値が入力されたら、...
-
エクセルで表示されている数字...
-
エクセルでセルの値分の個数の...
-
エクセル:横長の表を改行して...
-
[関数について]わかる方教えて...
-
エクセル関数に詳しい方教えて...
-
エクセルで、毎日の走行距離(...
-
エクセルのsumifでかけ算してか...
-
HYPERLINKとADDRESSとMATCHの組...
-
エクセルで曜日に応じた文字を...
-
入退社日より各月末の在籍者数...
-
エクセルで1列全部10倍したい
-
エクセルで小数を含む数値の抽出
おすすめ情報