●EXCEL・VBA質問スレ Part2●at TECH●EXCEL・VBA質問スレ Part2● - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト700:デフォルトの名無しさん 07/08/24 00:31:35 >>695 わざわざ質問スレに出張ってきて こんな簡単な質問答えるやつは、 教えたがり厨だ!! ってわけですか? 701:デフォルトの名無しさん 07/08/24 01:08:05 >>694 未テストだがこんな感じ Public Sub SheetLoop() Dim wksSheet As Worksheet Dim dtDate As Date Dim intOffset As Integer Dim strbuf As String dtDate = "2007/08/01" For Each wksSheet In ThisWorkbook.Worksheets strbuf = wksSheet.Name If 2 <= CInt(strbuf) And CInt(strbuf) <= 32 Then wksSheet.Cells(5.2).Value = Format$(dtDate + intOffset, "yyyy/mm/dd") intOffset = intOffset + 1 End If Next Set wksSheet = Nothing End Sub 702:デフォルトの名無しさん 07/08/24 01:24:03 >>701の注意点 シートの名称がイマイチ意味不明なのでとりあえずcintしたが、 これがSheet1とかのパターンが出てくると間違いなくエラーになるので、 isnumericで事前に回避するか、Sheet1系統でOKの場合は "Sheet"&カウントで文字列連結してstrcompで見てやる必要がある。 今後の注意点 ・1文字変数は使わない ・Activate,Select系は使わずオブジェクト経由でアクセスすること ・A1形式は極力使わない ・上記に伴いRangeを使う場面ではCellsで展開してから使用する ・セルに入れる値が日付や文字列や数値など、フォーマットが決まっている場合は 表示形式をNumberformatなどで事前に指定してやる 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch