https://store.line.me/stickershop/author/540272/ja0475名無しさん@そうだ選挙にいこう2018/09/13(木) 12:11:56.55>>473 ブックの名前は? 全て同じフォルダにある? 0476名無しさん@そうだ選挙にいこう2018/09/13(木) 12:14:34.62>>475 名前は(1)〜(100) 全て同じフォルダ内にあります。 0477名無しさん@そうだ選挙にいこう2018/09/13(木) 12:22:06.52 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい・ 【4 VBAでの回答の可否】 可・ セルA1が空白なら「社員番号がありません」とウィンドウでキャンセル、 セルB2が空白なら「日付がありません」とウィンドウでキャンセル、 セルC3が空白なら「時刻がありません」とウィンドウでキャンセルする方法がわかりません。 御指導、ご鞭撻をお願いします。 0478名無しさん@そうだ選挙にいこう2018/09/13(木) 12:46:04.05 if range("a1").value="" then mes1="社員番号" if range("b1").value="" then mes1=mes1 & " 日付" if range("c1").value="" then mes1=mes1&" 時刻"
if mes1 <> "" then msgbox mes1&"がありません",vbokonly exit sub end if 0479名無しさん@そうだ選挙にいこう2018/09/13(木) 12:47:40.54 bとcのセル違ってました 0480名無しさん@そうだ選挙にいこう2018/09/13(木) 12:49:05.64>>473 ファイル名に規則性があるなら、indirect関数でファイル名の部分を変化させて参照するのはどうでしょう?
Private Sub CommandButton1_Click() Dim fn As String Dim wk As Workbook Dim wh As Worksheet
fn = Dir(ThisWorkbook.Path & "\*.xls", vbNormal)
Do While fn <> "" If fn <> ThisWorkbook.Name Then Set wk = Workbooks.Open(ThisWorkbook.Path & "\" & fn) Set wh = wk.Sheets(1) wh.Name = Left(fn, 4) Call wh.Copy(, ThisWorkbook.Sheets(1)) Call wk.Close(False) End If fn = Dir() Loop
'Sheet2をオブジェクト変数Ws2に Dim Ws2 As Worksheet Set Ws2 = Worksheets("Sheet2")
'最終行のC列、D列に数値が入っていて、D列の数値>=C列の数値である場合のみ転記をする。
If IsNumeric(Cells(myRow, 3)) = True And IsNumeric(Cells(myRow, 4)) = True And _ Cells(myRow, 3) <= Cells(myRow, 4) Then For i = Cells(myRow, 3) To Cells(myRow, 4) Ws2.Cells(i + 1, 2) = Cells(myRow, 1) Ws2.Cells(i + 1, 3) = Cells(myRow, 2) Next i Else MsgBox "入力値が適正ではありません" End If End Sub 0513名無しさん@そうだ選挙にいこう2018/09/22(土) 21:53:10.79 myRowって何だよw 0514名無しさん@そうだ選挙にいこう2018/09/22(土) 23:34:38.53>>503 vba使わないで関数で引っ張るのはどうですか? どれくらいの量になるのかによるけど、作業列使って計算すればできますよ 0515名無しさん@そうだ選挙にいこう2018/09/23(日) 09:59:29.70>>512 起動しました!ありがとうございました! 0516名無しさん@そうだ選挙にいこう2018/09/23(日) 11:21:00.23 対象が最終行だけだと、入力データ多い場合かなりめんどくさそう 05175122018/09/23(日) 11:57:15.24>>516 その場合、E列をWクリックするとその行のデータをもとに転記するイベントプロシージャにすれば?
Sub test() '矩形選択範囲から行を取得、該当業のデータをもとにsheet2に転記するプロシージャ '例)A2:A8を選択した状態なら、2行目から8行目 ' B3:B10を選択した状態なら、3行目から10行目
Dim i As Long Dim j As Long 'Sheet2をオブジェクト変数Ws2に Dim Ws2 As Worksheet Set Ws2 = Worksheets("Sheet2") 'C列、D列に数値が入っていて、D列の数値>=C列の数値である場合のみ転記をする。 For j = Selection(1).Row To Selection(Selection.Count).Row If IsNumeric(Cells(j, 3)) = True And IsNumeric(Cells(j, 4)) = True And _ Cells(j, 3) <= Cells(j, 4) Then For i = Cells(j, 3) To Cells(j, 4) Ws2.Cells(i + 1, 2) = Cells(j, 1) Ws2.Cells(i + 1, 3) = Cells(j, 2) Next i Else MsgBox j & "行目の入力値が適正ではありません" End If Next j End Sub 0520名無しさん@そうだ選挙にいこう2018/09/23(日) 16:17:26.66>>519 Sub 偶数()
'1から10の中で偶数一覧を出力する For i = 1 To 10 If i Mod 2 Then 'do nothing. Else 偶数一覧 = 偶数一覧 & i & "," End If Next
'output If 偶数一覧 Then MsgBox "偶数:" & 偶数一覧 Else MsgBox "偶数なし" End If