Excel VBA質問箱 IV

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

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


12402 / 13645 ツリー ←次へ | 前へ→

【10681】一番右のセル選択 サンサン 04/2/6(金) 9:00 質問
【10684】Re:一番右のセル選択 つん 04/2/6(金) 10:01 発言
【10685】Re:一番右のセル選択 サンサン 04/2/6(金) 10:24 質問
【10686】Re:一番右のセル選択 つん 04/2/6(金) 10:29 発言
【10687】Re:一番右のセル選択 サンサン 04/2/6(金) 11:00 発言
【10688】Re:一番右のセル選択 Asaki 04/2/6(金) 11:09 回答
【10690】Re:一番右のセル選択 Asaki 04/2/6(金) 11:27 回答
【10701】Re:一番右のセル選択 サンサン 04/2/9(月) 10:56 お礼
【10689】Re:一番右のセル選択 つん 04/2/6(金) 11:13 回答
【10702】Re:一番右のセル選択 サンサン 04/2/9(月) 10:57 お礼

【10681】一番右のセル選択
質問  サンサン  - 04/2/6(金) 9:00 -

引用なし
パスワード
   H列にある数字をI列に乗算、次はJ列、次はK列というふうにH列をずっと乗算していくとき、数字が入っているセルまで選択するというマクロを作りたいのですが、どうしていいか分からないので教えてください。
      
     H  I  J  K  L  M  N  . . .
  
     2  3  1  5  9  4  2   

一番右のせるから数字が入っているセルまで左方向にいくという構文を作りたいと
 思っています。よろしくお願いします。

【10684】Re:一番右のセル選択
発言  つん E-MAIL  - 04/2/6(金) 10:01 -

引用なし
パスワード
   サンサン さん、おはようございます。

> 一番右のせるから数字が入っているセルまで左方向にいくという構文を作りたいと
> 思っています。よろしくお願いします。

ちょっと質問の意味がはっきりわからないのですが、
とりあえず、1行目の、数字が連続して入ってるセルを、右から左に指定していく感じで・・・

Sub test()

  Dim R As Long
  Dim L As Long
  Dim i As Long
  
  R = Range("iv1").End(xlToLeft).Column
  L = Cells(1, R).End(xlToLeft).Column
  
  For i = R To L Step -1
    MsgBox Cells(1, i).Value
  Next i

End Sub

ち・・ちがうかしらんっ?

【10685】Re:一番右のセル選択
質問  サンサン  - 04/2/6(金) 10:24 -

引用なし
パスワード
   質問の意味がわかりづらくてすみません。たぶんつんさんがつくってくれた構文でいいと思うんですが、それに「H列を乗算していく構文」をプラスしたらどうなるんでしょう?

【10686】Re:一番右のセル選択
発言  つん E-MAIL  - 04/2/6(金) 10:29 -

引用なし
パスワード
   どもども
>質問の意味がわかりづらくてすみません。たぶんつんさんがつくってくれた構文でいいと思うんですが、それに「H列を乗算していく構文」をプラスしたらどうなるんでしょう?

その「H列を乗算していく」ってのがわからないんですけど・・・
セルを右から左へ・・・というのだから、
例えば、H1〜N1まで数字が入っていたとして、
N1の数字に、M1の数字をかけて、それで出た数字に、
L1の数字をかけて・・・って思ったのですけど。
でも「H列を・・・」ということは、H1、H2、H3・・って処理していくの?

【10687】Re:一番右のセル選択
発言  サンサン  - 04/2/6(金) 11:00 -

引用なし
パスワード
   質問がごちゃごちゃでしたね。すみません。

乗算していきたいのは左から右へです。行は2行目だけと考えてください。
具体的にいうとH2の数字をI2の数字にかけて、またH2の数字をJ2の数字にかけてという風にずっと乗算していきたいのですが、どこの列で終わるのかが分からないので、数字の入っている列までという風に構文を作りたいのです。またまた分かりにくいかも知れませんがどうぞよろしくお願いします!

【10688】Re:一番右のセル選択
回答  Asaki  - 04/2/6(金) 11:09 -

引用なし
パスワード
   みなさま こんにちは。
後ろから失礼いたします。

元の2行目に乗算した結果を書き戻してよければ、↓のようなものでは如何でしょうか?
H2セルをコピーして、I2から2行目最後の列まで、乗算コピーしています。

Sub Macro1()
  Range("H2").Copy
  '形式を選択して貼り付け >> 値 >> 乗算
  Range("I2", Range("IV2").End(xlToLeft)).PasteSpecial _
    Paste:=xlValues, Operation:=xlMultiply, SkipBlanks:=False, Transpose:=False
  Application.CutCopyMode = False
  Range("H2").Select
End Sub

【10689】Re:一番右のセル選択
回答  つん E-MAIL  - 04/2/6(金) 11:13 -

引用なし
パスワード
   ▼サンサン さん:
>質問がごちゃごちゃでしたね。すみません。
>
>乗算していきたいのは左から右へです。行は2行目だけと考えてください。
>具体的にいうとH2の数字をI2の数字にかけて、またH2の数字をJ2の数字にかけてという風にずっと乗算していきたいのですが、どこの列で終わるのかが分からないので、数字の入っている列までという風に構文を作りたいのです。またまた分かりにくいかも知れませんがどうぞよろしくお願いします!

H列から数字の入ってる最終列を取得するのは

 Range("h2").End(xlToRight).Column

これは、H2にカーソルをある状態で「Ctrl+→」で飛んだセルの列番です。

  For i = 8 To Range("h2").End(xlToRight).Column
     cells(2,1)
  Next i

これで、H2〜最終列までのセルを順番に取得できます。
乗算は「*」演算子で出来るので、For〜Next分の中で順番に処理していけばいいと思います。

【10690】Re:一番右のセル選択
回答  Asaki  - 04/2/6(金) 11:27 -

引用なし
パスワード
   >乗算コピー

乗算貼り付け
ですね、多分。

すみません。

【10701】Re:一番右のセル選択
お礼  サンサン  - 04/2/9(月) 10:56 -

引用なし
パスワード
   返事がおそくなってすみません。

試しにやって見たいと思います。うまくできなかったら、また質問しますので
アドバイスお願いします!
ありがとうございました!!

【10702】Re:一番右のセル選択
お礼  サンサン  - 04/2/9(月) 10:57 -

引用なし
パスワード
   返事がおくれてすみません。

試しにやってみたいと思います。うまくいかなかったら、また質問しますので
アドバイスお願いします!

ありがとうございました!!

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