Excel VBA質問箱 IV

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

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


12949 / 13644 ツリー ←次へ | 前へ→

【7730】繰返し構文 三連休 03/9/16(火) 14:46 質問
【7733】Re:繰返し構文 INA 03/9/16(火) 15:19 回答
【7736】Re:繰返し構文 三連休 03/9/16(火) 16:18 回答
【7737】Re:繰返し構文 INA 03/9/16(火) 16:22 質問
【7750】Re:繰返し構文 三連休 03/9/17(水) 9:07 回答
【7752】Re:繰返し構文 INA 03/9/17(水) 9:40 回答
【7756】Re:繰返し構文 三連休 03/9/17(水) 11:29 お礼
【7771】Re:繰返し構文 三連休 03/9/17(水) 15:41 質問
【7772】Re:繰返し構文 INA 03/9/17(水) 16:11 回答
【7805】Re:繰返し構文 三連休 03/9/18(木) 16:04 お礼
【7806】Re:繰返し構文 三連休 03/9/18(木) 16:07 お礼
【7773】Re:繰返し構文 Kein 03/9/17(水) 16:25 回答

【7730】繰返し構文
質問  三連休  - 03/9/16(火) 14:46 -

引用なし
パスワード
   表内で繰返しの構文をつかいたいのですが、どんな表にも適応できる様にしたいと思っています。具体的にいいますと、1行目のK列からL,M...と順に項目があって、2行目以降には数値が入っています。始まりは同じですが、表によってどこまではいっているかはまちまちです。J列に入っている数値と表内の数値をそれぞれかけた値を、別シートに出すという作業を行と列が入っているところまで繰り返す構文を作りたいのですが、教えて頂けないでしょうか?難しすぎて分かりません。

【7733】Re:繰返し構文
回答  INA  - 03/9/16(火) 15:19 -

引用なし
パスワード
   J列の値に対して、K,L,M列と乗算するようですが、どのセル同士で計算すればよいのか、解らないです。
それと結果を出力するシートのレイアウトは、どのようになるのでしょうか?

【7736】Re:繰返し構文
回答  三連休  - 03/9/16(火) 16:18 -

引用なし
パスワード
   ▼INA さん:
>J列の値に対して、K,L,M列と乗算するようですが、どのセル同士で計算すればよいのか、解らないです。
>それと結果を出力するシートのレイアウトは、どのようになるのでしょうか?

お返事ありがとうございます。質問に対してですが、K,L,M...と表内すべてのセルと乗算したいと思っています。そして出力するシートは、もとのシートと全く同じ形式で中身の数値だけが違う形にしたいんですが、分かりますでしょうか?よろしくお願いします。

【7737】Re:繰返し構文
質問  INA  - 03/9/16(火) 16:22 -

引用なし
パスワード
   >お返事ありがとうございます。質問に対してですが、K,L,M...と表内すべてのセルと乗算したいと思っています。そして出力するシートは、もとのシートと全く同じ形式で中身の数値だけが違う形にしたいんですが、分かりますでしょうか?よろしくお願いします。
行単位なのか総当たりなのか、よく分からないのです。
例題として式を書いて頂けませんか?

【7750】Re:繰返し構文
回答  三連休  - 03/9/17(水) 9:07 -

引用なし
パスワード
   行単位で乗算します。 J列に数値があり、その他のセルにも数値があるとします。
           それをこの下の表で言うなら、J2セルにある2をK2,L2,M2...と           いう風に行単位でかけていきます。同じく3行目もJ3にある4を
           K3,L3,M3...という風にかけていきます。            
     

   J   K L M ...     説明がわるくてすみませんが、
 1                よろしくお願いします!
 2  2  3 3 2  
 3  4  6 8 5
 4  5  4 2 3
 .
 .
 .

【7752】Re:繰返し構文
回答  INA  - 03/9/17(水) 9:40 -

引用なし
パスワード
   作ってみたので、試してみて下さい。

sheet1のデータをsheet2にコピーして乗算を実行します。

Private Sub CommandButton1_Click()
Dim R As Long '行カウンタ
Dim C As Long '列カウンタ

With Worksheets("sheet2")
  
  'シートコピー
  Worksheets("sheet1").Cells.Copy _
  Destination:=.Cells


For R = 2 To .Cells(65536, 10).End(xlUp).Row
  
  For C = 11 To .Cells(2, 256).End(xlToLeft).Column
    '乗算
    .Cells(R, C).Value = .Cells(R, C).Value * .Cells(R, 10).Value
  
  Next C

Next R

End With

End Sub

【7756】Re:繰返し構文
お礼  三連休  - 03/9/17(水) 11:29 -

引用なし
パスワード
   バッチリできました!
これで作業が早くできそうです^^
ありがとうございました!

【7771】Re:繰返し構文
質問  三連休  - 03/9/17(水) 15:41 -

引用なし
パスワード
   先程、マクロが成功しましたとお返事をしましたが、よく見てみると数値が乗算されていませんでした。別のシートにコピーするのは完璧でしたが、そのままコピーされている形でした。構文の中には、乗算する構文もちゃんとあるので、私のやり方がわるいんだと思うんですが、何がいけないのかわからないのでおしえていただけますか?ちなみにフォームを作って、そのコマンドボタンをおしたらコピー、乗算されるという様にしたんですけど?

【7772】Re:繰返し構文
回答  INA  - 03/9/17(水) 16:11 -

引用なし
パスワード
   試しに新規ブックのセルJ2:M10に数値を入力して実行していただけませんか?
その場合、問題ないと思います。

たぶん
 .Cells(65536, 10).End(xlUp).Row
か 
 .Cells(2, 256).End(xlToLeft).Column 
が、求められていないのが原因だと思います。
これらの値を取得するに当たり、
シートのデータの入力されているレイアウトにあわせて、
変更する必要があると思います。

【7773】Re:繰返し構文
回答  Kein  - 03/9/17(水) 16:25 -

引用なし
パスワード
   こんな感じで、どうでしょーか ?

Sub Test()
  Dim MyR As Range, C As Range
   
  Application.ScreenUpdating = False
  ActiveSheet.Copy After:=ActiveSheet
  For Each C In Range("J1", Range("J65536").End(xlUp))
   Set MyR = Range(C.Offset(, 1), C.Offset(, 246)) _
   .SpecialCells(2, 1)
   C.Copy
   MyR.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
   Application.CutCopyMode = False
   Set MyR = Nothing
  Next
  Application.ScreenUpdating = True
End Sub

【7805】Re:繰返し構文
お礼  三連休  - 03/9/18(木) 16:04 -

引用なし
パスワード
   返事がおそくなってすみません。おっしゃる通り、試しにJ2からM10まで数値を入れてやってみたところ、ちゃんと乗算されて別シートに出てきました。ということでもう一回チャレンジしてみようとおもいます。ありがとうございました!

【7806】Re:繰返し構文
お礼  三連休  - 03/9/18(木) 16:07 -

引用なし
パスワード
   前にINAさんに教えていただいたやり方と、今回教えていただいたやり方の両方を試してみました。バッチリオッケーでしたよ!いろいろな構文があるんですねー。どうもありがとうございました。

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