Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8326 / 13646 ツリー ←次へ | 前へ→

【33945】シート上のデータをマクロに使う方法 Nishiyama 06/1/24(火) 10:58 質問[未読]
【33946】Re:シート上のデータをマクロに使う方法 MARBIN 06/1/24(火) 11:00 発言[未読]
【33947】Re:シート上のデータをマクロに使う方法 MARBIN 06/1/24(火) 11:10 回答[未読]
【33948】Re:シート上のデータをマクロに使う方法 Nishiyama 06/1/24(火) 11:23 質問[未読]
【33950】Re:シート上のデータをマクロに使う方法 Nishiyama 06/1/24(火) 11:37 質問[未読]
【33956】Re:シート上のデータをマクロに使う方法 inoue 06/1/24(火) 12:25 発言[未読]
【33959】Re:シート上のデータをマクロに使う方法 Nishiyama 06/1/24(火) 12:53 質問[未読]
【33960】Re:シート上のデータをマクロに使う方法 inoue 06/1/24(火) 12:59 発言[未読]
【33963】Re:シート上のデータをマクロに使う方法 Nishiyama 06/1/24(火) 13:12 質問[未読]
【33979】Re:シート上のデータをマクロに使う方法 inoue 06/1/24(火) 15:39 発言[未読]
【33991】Re:シート上のデータをマクロに使う方法 Nishiyama 06/1/24(火) 18:13 お礼[未読]
【33992】Re:シート上のデータをマクロに使う方法 inoue 06/1/24(火) 18:33 発言[未読]
【34020】Re:シート上のデータをマクロに使う方法 Nishiyama 06/1/25(水) 8:23 お礼[未読]
【33949】Re:シート上のデータをマクロに使う方法 Nishiyama 06/1/24(火) 11:27 お礼[未読]

【33945】シート上のデータをマクロに使う方法
質問  Nishiyama  - 06/1/24(火) 10:58 -

引用なし
パスワード
   何もまだ出来ない初心者ですが
教えてください。

*やりたいこと*
A1に計算式を入れて
それをA180までコピーしたいのです。
ただし、A180はデータの最後で、データの最後はいつも変わります。
(A182になったり、A125になったり)

  Range("A1").Select
  ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[1],RC[2])"
  Selection.Copy
  Range("A1:A180").Select
  ActiveSheet.Paste

シート上のA8に何件なのか表示されています。
このA8の件数をマクロ内に取り込みたいのですが

あわせて、ある列のデータの最後まで同じ計算をさせる方法があれば教えてください。
A8を参照しなくても出来る方法

【33946】Re:シート上のデータをマクロに使う方法
発言  MARBIN  - 06/1/24(火) 11:00 -

引用なし
パスワード
   Resize
をVBAヘルプで調べてみてください。

【33947】Re:シート上のデータをマクロに使う方法
回答  MARBIN  - 06/1/24(火) 11:10 -

引用なし
パスワード
   参照セルがA8ということですが、
式を貼り付ける範囲にA8が入っているのですが
同じシートですか?

違うシートと仮定したら↓のような感じになります。

Sub siki()
Dim Gyousu As Long
Dim c As Range
Dim r As Range
 Gyousu = Worksheets(1).Cells(8, 1).Value
 Set r = Worksheets(2).Cells(1, 1).Resize(Gyousu)
  For Each c In r
  c.FormulaR1C1 = "=CONCATENATE(RC[1],RC[2])"
  Next
End Sub

【33948】Re:シート上のデータをマクロに使う方法
質問  Nishiyama  - 06/1/24(火) 11:23 -

引用なし
パスワード
   ▼MARBIN さん:

回答ありがとうございます。

>参照セルがA8
は、間違ってました。同一シートのH8です。

それで、シートを作ってA8にデータを入れて試したのですが
> Gyousu = Worksheets(1).Cells(8, 1).Value
”型が一致しません。”
とメッセージが出て、動きません。

何か間違いか設定があるのでしょうか

>参照セルがA8ということですが、
>式を貼り付ける範囲にA8が入っているのですが
>同じシートですか?
>
>違うシートと仮定したら↓のような感じになります。
>
>Sub siki()
> Dim Gyousu As Long
> Dim c As Range
> Dim r As Range
> Gyousu = Worksheets(1).Cells(8, 1).Value
> Set r = Worksheets(2).Cells(1, 1).Resize(Gyousu)
>  For Each c In r
>  c.FormulaR1C1 = "=CONCATENATE(RC[1],RC[2])"
>  Next
>End Sub

【33949】Re:シート上のデータをマクロに使う方法
お礼  Nishiyama  - 06/1/24(火) 11:27 -

引用なし
パスワード
   ▼MARBIN さん:

ありがとうございます。
調べて見ましたが、良くわかりませんでした。

>Resize
>をVBAヘルプで調べてみてください。

【33950】Re:シート上のデータをマクロに使う方法
質問  Nishiyama  - 06/1/24(火) 11:37 -

引用なし
パスワード
   ▼MARBIN さん:

H8に入っているデータはただの数字(整数)です。


>▼MARBIN さん:
>
>回答ありがとうございます。
>
>>参照セルがA8
>は、間違ってました。同一シートのH8です。
>
>それで、シートを作ってA8にデータを入れて試したのですが
>> Gyousu = Worksheets(1).Cells(8, 1).Value
>”型が一致しません。”
>とメッセージが出て、動きません。
>
>何か間違いか設定があるのでしょうか
>
>>参照セルがA8ということですが、
>>式を貼り付ける範囲にA8が入っているのですが
>>同じシートですか?
>>
>>違うシートと仮定したら↓のような感じになります。
>>
>>Sub siki()
>> Dim Gyousu As Long
>> Dim c As Range
>> Dim r As Range
>> Gyousu = Worksheets(1).Cells(8, 1).Value
>> Set r = Worksheets(2).Cells(1, 1).Resize(Gyousu)
>>  For Each c In r
>>  c.FormulaR1C1 = "=CONCATENATE(RC[1],RC[2])"
>>  Next
>>End Sub

【33956】Re:シート上のデータをマクロに使う方法
発言  inoue E-MAILWEB  - 06/1/24(火) 12:25 -

引用なし
パスワード
   > Set r = Worksheets(2).Cells(1, 1).Resize(Gyousu)
>  For Each c In r
>  c.FormulaR1C1 = "=CONCATENATE(RC[1],RC[2])"
>  Next
「行数(Gyousu)」が持ってこれたとして、
式が一定ならループさせる必要はありません。
Worksheets(2).Cells(1, 1).Resize(Gyousu).FormulaR1C1 = _
  "=CONCATENATE(RC[1],RC[2])"
とか、
With Worksheets(2)
 .Range(.Cells(1, 1), .Cells(Gyousu, 1)).FormulaR1C1 = _
   "=CONCATENATE(RC[1],RC[2])"
End With
で良いと思います。

【33959】Re:シート上のデータをマクロに使う方法
質問  Nishiyama  - 06/1/24(火) 12:53 -

引用なし
パスワード
   ▼inoue さん:

ありがとうございます。

>「行数(Gyousu)」が持ってこれたとして

ここがうまくいかないのですが


>> Set r = Worksheets(2).Cells(1, 1).Resize(Gyousu)
>>  For Each c In r
>>  c.FormulaR1C1 = "=CONCATENATE(RC[1],RC[2])"
>>  Next
>「行数(Gyousu)」が持ってこれたとして、
>式が一定ならループさせる必要はありません。
>Worksheets(2).Cells(1, 1).Resize(Gyousu).FormulaR1C1 = _
>  "=CONCATENATE(RC[1],RC[2])"
>とか、
>With Worksheets(2)
> .Range(.Cells(1, 1), .Cells(Gyousu, 1)).FormulaR1C1 = _
>   "=CONCATENATE(RC[1],RC[2])"
>End With
>で良いと思います。

【33960】Re:シート上のデータをマクロに使う方法
発言  inoue E-MAILWEB  - 06/1/24(火) 12:59 -

引用なし
パスワード
   >>「行数(Gyousu)」が持ってこれたとして
>ここがうまくいかないのですが
H8セルでしょう?
> Gyousu = Worksheets(1).Cells(8, 1).Value
これではA8セルですから、
Gyousu = Worksheets(1).Cells(8, 8).Value
に変えて下さい。(8行目8列目の意)

シートは合っているのでしょうか?
Worksheets(1)はシートタブの左端のシート
Worksheets(2)は左から2番目です。

【33963】Re:シート上のデータをマクロに使う方法
質問  Nishiyama  - 06/1/24(火) 13:12 -

引用なし
パスワード
   ▼inoue さん:

本当にご回答ありがとうございます。

> Gyousu = Worksheets(1).Cells(8, 8).Value
”型が一致しません。”
とメッセージが出て、動かないのです。

本当に初心者の質問で申し訳ありません
H8には、整数が入っています。

ヘルプで見ても理解できませんでした。
よろしくお願いします。

>>>「行数(Gyousu)」が持ってこれたとして
>>ここがうまくいかないのですが
>H8セルでしょう?
>> Gyousu = Worksheets(1).Cells(8, 1).Value
>これではA8セルですから、
>Gyousu = Worksheets(1).Cells(8, 8).Value
>に変えて下さい。(8行目8列目の意)
>
>シートは合っているのでしょうか?
>Worksheets(1)はシートタブの左端のシート
>Worksheets(2)は左から2番目です。

【33979】Re:シート上のデータをマクロに使う方法
発言  inoue E-MAILWEB  - 06/1/24(火) 15:39 -

引用なし
パスワード
   >> Gyousu = Worksheets(1).Cells(8, 8).Value
>”型が一致しません。”
>とメッセージが出て、動かないのです。
デバッグは自分で覚えないと。
エラーの度に質問ですか?

エラーが出てデバッグを押したところで、
イミデイエイトウィンドウを開いて、
?Worksheets(1).Cells(8, 8).Value
と入力してEnterを押してみて下さい。
すぐ下に何が表示されますか?
整数ならエラーにはならないはずですが。

【33991】Re:シート上のデータをマクロに使う方法
お礼  Nishiyama  - 06/1/24(火) 18:13 -

引用なし
パスワード
   ▼inoue さん:

うーん。・・・時間が無いので、頼ってしまいました。
まだ、本当に初心者なもので。。
頑張って勉強します。

いろいろありがとうございました。

>>> Gyousu = Worksheets(1).Cells(8, 8).Value
>>”型が一致しません。”
>>とメッセージが出て、動かないのです。
>デバッグは自分で覚えないと。
>エラーの度に質問ですか?
>
>エラーが出てデバッグを押したところで、
>イミデイエイトウィンドウを開いて、
>?Worksheets(1).Cells(8, 8).Value
>と入力してEnterを押してみて下さい。
>すぐ下に何が表示されますか?
>整数ならエラーにはならないはずですが。

【33992】Re:シート上のデータをマクロに使う方法
発言  inoue E-MAILWEB  - 06/1/24(火) 18:33 -

引用なし
パスワード
   >まだ、本当に初心者なもので。。
>頑張って勉強します。
あれっ!
>エラーが出てデバッグを押したところで、
>イミデイエイトウィンドウを開いて、
これは分かったのですか?

[作成したマクロの動作の確認方法]
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_030.html
[マクロを「書いてみた」「動かした」「ダメでした」。]
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_200.html

【34020】Re:シート上のデータをマクロに使う方法
お礼  Nishiyama  - 06/1/25(水) 8:23 -

引用なし
パスワード
   ▼inoue さん:

・・・読んで絶句です。
まさに私の対応そのままなので
これから、よく読んで対応してみます。


>>まだ、本当に初心者なもので。。
>>頑張って勉強します。
>あれっ!
>>エラーが出てデバッグを押したところで、
>>イミデイエイトウィンドウを開いて、
>これは分かったのですか?
>
>[作成したマクロの動作の確認方法]
>http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_030.html
>[マクロを「書いてみた」「動かした」「ダメでした」。]
>http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_200.html

8326 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free