Excel VBA質問箱 IV

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

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


11536 / 76734 ←次へ | 前へ→

【70732】Re:データベースからの転記について
発言  Hirofumi  - 11/12/20(火) 19:49 -

引用なし
パスワード
   データが無くてテストしていないから自信が無いけど?
こんなかな?

Sub Macro()

  '転記先頭行位置
  Const clngPostT As Long = 15
  '転記最終行位置
  Const clngPostE As Long = 22
  
  Dim i As Long
'  Dim mySh1 As Worksheet
  Dim mySh2 As Worksheet
  Dim myRow As Long
'  Dim actRow As Long
  
  Dim j As Long
  Dim rngMark As Range
  Dim strPrompt As String

  If TypeName(Selection) <> "Range" Then
    strPrompt = "セル範囲を選択して下さい"
    GoTo Wayout
  End If

  Set rngMark = Intersect(Selection, Columns("A"))
  If rngMark Is Nothing Then
    strPrompt = "A列のセルを選択して下さい(終了)"
    GoTo Wayout
  End If
  
'  actRow = ActiveCell.Row
  If Sheets(Sheets.Count).Name <> "New" Then
    Sheets("発注書").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = Format(Now, "yymmdd_hhmmss")
  End If

'  Set mySh1 = Sheets("一覧")
  Set mySh2 = ActiveSheet

'  For i = 15 To 22
  For i = clngPostT To clngPostE
    If mySh2.Range("A" & i) = "" Then
'      myRow = i
      Exit For
    End If
  Next i
'  If myRow = 0 Then
  If i > clngPostE Then
    strPrompt = "空欄がありません!"
    GoTo Wayout
  End If

'  Exit Sub '此処でSubから無条件で抜けているので、以降のコードは実行されないよ??

  For i = i To clngPostE
    j = j + 1
    With mySh2
      .Range("F" & i).Value = rngMark.Cells(j, "A").Value
      .Range("A" & i).Value = rngMark.Cells(j, "B").Value
      .Range("G" & i).Value = rngMark.Cells(j, "C").Value
      .Range("H" & i).Value = rngMark.Cells(j, "D").Value
      .Range("I" & i).Value = rngMark.Cells(j, "J").Value
    End With
  Next i
    
  With mySh2
    .Range("G11").Value = rngMark.Cells(1, "E").Value
    .Range("A3").Value = rngMark.Cells(1, "F").Value
    .Range("A1").Value = rngMark.Cells(1, "G").Value
    .Range("I2").Value = rngMark.Cells(1, "H").Value
    .Range("I12").Value = rngMark.Cells(1, "I").Value
    .Range("B23").Value = rngMark.Cells(1, "K").Value
    .Range("I5").Value = rngMark.Cells(1, "L").Value
  End With

  mySh2.Select

Wayout:

'  Set mySh1 = Nothing
  Set mySh2 = Nothing
  Set rngMark = Nothing
  
  MsgBox strPrompt, vbInformation
  
End Sub

9 hits

【70724】データベースからの転記について うろ 11/12/20(火) 11:42 質問
【70725】Re:データベースからの転記について Hirofumi 11/12/20(火) 12:53 発言
【70726】Re:データベースからの転記について うろ 11/12/20(火) 13:42 質問
【70731】Re:データベースからの転記について Hirofumi 11/12/20(火) 18:59 発言
【70732】Re:データベースからの転記について Hirofumi 11/12/20(火) 19:49 発言
【70733】Re:データベースからの転記について Hirofumi 11/12/20(火) 20:45 発言
【70735】Re:データベースからの転記について うろ 11/12/21(水) 13:47 お礼

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