Excel VBA質問箱 IV

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

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


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

【53713】If..then..Else、For..Next等の組み合わせでするのかな VBA初心者 08/2/4(月) 15:17 質問[未読]
【53716】Re:If..then..Else、For..Next等の組み合わ... Jaka 08/2/4(月) 16:35 発言[未読]
【53744】Re:If..then..Else、For..Next等の組み合わ... VBWASURETA 08/2/5(火) 16:29 発言[未読]
【53816】Re:If..then..Else、For..Next等の組み合わ... VBA初心者 08/2/8(金) 10:27 発言[未読]
【53818】Re:If..then..Else、For..Next等の組み合わ... VBWASURETA 08/2/8(金) 10:46 回答[未読]
【53846】Re:If..then..Else、For..Next等の組み合わ... VBA初心者 08/2/10(日) 14:16 お礼[未読]

【53713】If..then..Else、For..Next等の組み合わ...
質問  VBA初心者  - 08/2/4(月) 15:17 -

引用なし
パスワード
   本を見ながら独学でVBAを勉強している、中年初心者です。よろしくお願いします
シート1のe12に入力された値をシート3のj3に反映するように
Sub 範囲を指定して貼り付け2()
  Dim S1 As Worksheet, S2 As Worksheet, S3 As Worksheet

  Set S1 = Worksheets("設計入力項目")
  Set S2 = Worksheets("見積内訳")
  Set S3 = Worksheets("登録データ")
  S2.Range("B4:E16").Value = S1.Range("B4:E16").Value
  S3.Range("j3").Value = S1.Range("e12").Value
  
End Sub
ボタンイベントによりマクロを操作しています
1、シート3のj3に反映した変数値Xを("j4:j12")のセルにX+1と1つずつ足す
2、j3〜j12セルは月の値なので、X>12の場合は-12をして、反映してX<=12の場合はそのまま反映する様にしたいです 
自分ではIf..then..Else、For..Next等の組み合わせでするのかな?と思っていますが、どの様な構文にするかチィンプンカンプンです。
また、違う方法であれば、教えてください

【53716】Re:If..then..Else、For..Next等の組み合...
発言  Jaka  - 08/2/4(月) 16:35 -

引用なし
パスワード
   いまいち内容を把握できてませんけど。
こう言ったような事?

X = 5
For i = 1 To 12
  MsgBox X
  X = X + 1
  If X > 12 Then
   X = 1
  End If
Next

【53744】Re:If..then..Else、For..Next等の組み合...
発言  VBWASURETA  - 08/2/5(火) 16:29 -

引用なし
パスワード
   ▼VBA初心者 さん:
こんにちは。

ちょっと違うかも知れませんが。
月だけの計算でしょうか?

シート上の関数だけでするのでしたらDATE関数で自動計算します。
関数:DATE(年,月,日)
例:DATE(2008 ,1 + 13, 20) = 2009/2/20

VBAでしたらDateSerial関数で自動計算します。
関数:DateSerial(年,月,日)
例:DateSerial(2008,1 + 13, 1) = 2009/2/1

【53816】Re:If..then..Else、For..Next等の組み合...
発言  VBA初心者  - 08/2/8(金) 10:27 -

引用なし
パスワード
   jaka&VBWASURETAさん返信有難うございます。
出張で今戻ってきました、返事が送れてすみません!
説明が下手ですみません!今自分は下記の感じで作っています
仮にチェンジイベントで
sheet 1
  a  b  c  d  e
1
2
3             ’登録シート
4        7  月  ’d4に始まりの月(数字)を記入

sheet 2
  a  b  c  d
1       7
2       8
3       9
.       12
7       1   'シート1からc1に(7)が転記されたら、c2から下方向
8       2     に月順番で12になったら1から順番に 

sheet 3

 ..e ..... q......ah.....az...
1                  'シート2 c1をe1,q1,ah1,az1転記
.
.
45                 'シート2 c2をe45,q45,ah45,az45転記
.
.
89                 'シート2 c3をe89,q89,ah89,az89転記
.
.
133                      同上
  
この様な作業を作っています
シート2の連番で12より大きくなったら1に戻り連番にしたいVBAがあればお教え下さい!
これが、無駄な作業もあるかも知れませんが、本を見ながらしています
良い方法が有れば(上記以外)よろしくお願いします

【53818】Re:If..then..Else、For..Next等の組み合...
回答  VBWASURETA  - 08/2/8(金) 10:46 -

引用なし
パスワード
   ▼VBA初心者 さん:
おはようございます。
説明下手ですみません。
やりたいことはシート内だけで出来そうですという意味で書いたのですが。

ちょっと試しに以下の内容をシートに入れてみてください。
多分、やりたい事が簡単にできる事が理解できるはずです。

新規のExcelを開いてシート1のセルA1に「7」を入れて下さい。
次にセルA2には「=TEXT(DATE(2008,A1+1,1),"m")」を入れてみて下さい。
セルA3に「=TEXT(DATE(2008, A2+1, 1),"m")」
セルA4に「=TEXT(DATE(2008, A3+1, 1),"m")」
セルA5に「=TEXT(DATE(2008, A4+1, 1),"m")」

と続けて入れいってみてください。
で、結果を見ると・・・
マクロがいらない事がわかります。

因みにTEXT関数はマクロでいうFORMAT関数です。
"m"は月のフォーマットにあたります。

【53846】Re:If..then..Else、For..Next等の組み合...
お礼  VBA初心者  - 08/2/10(日) 14:16 -

引用なし
パスワード
   VBWASURETAさん 早速有難うございました
大変参考になりました、まだまだ分からないことばかりで、やりたいことは頭では整理がついているのですが、構文?をとなると難しいですね〜
がんばって見ます!またよろしくお願いします
御礼申し上げます

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