Excel VBA質問箱 IV

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

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


74357 / 76738 ←次へ | 前へ→

【6850】Re:日付をファイル間で・・・
お礼  スヌーピ- E-MAIL  - 03/8/7(木) 17:03 -

引用なし
パスワード
   いろいろアドバイス有難うございました。まだまだ勉強不足なのでいろいろ迷惑かけてしまいすみませんでした。

Input #1, myArrayの所を Line Input #1, myArray
になおし、カンマでデータを区切るsplit関数を用いる事により
実行できました。そのソースを載せておきます。

CSVファイルのデータ
1,太郎,1960/7/27,1979/4/1,GPM2級,無所属,部長
2,次郎,1965/2/21,1980/4/1,PM3級,無所属,部長

Option Explicit

'  TextFileを絶対Pathで指定
Private Const INFILE = "C:/java/CSV/0371.csv"
Private Sub CommandButton1_Click()

Dim i As Long, j As Integer
Dim myRange As String
Dim myRange1 As String
Dim myRange2 As String
Dim myArray As Variant
Dim myArray2 As Variant
Dim myFileName As String
Dim mywb As Workbook
Dim mySht As Worksheet

Open INFILE For Input As #1

  On Error GoTo Macro1_Err

  On Error GoTo 0
  With ActiveSheet
    .UsedRange.Select
    Selection.ClearContents
    .Range("A1").Select
    End With
  '新しいブックを作成
  Workbooks.Add
  'ファイル名の指定
  myFileName = "0371.xls"
  Set mywb = Workbooks(2)
  mywb.SaveAs Filename:=myFileName
  Set mywb = Nothing

  On Error Resume Next
  'ワークシートの指定
  Worksheets(1).Name = "新規"
  On Error GoTo 0
  Set mySht = Nothing

  i = 0
  
  Do Until EOF(1)
    i = i + 1
  '配列に読み込む
  Line Input #1, myArray
  'カンマ区切りで配列に書き込む
  myArray2 = Split(myArray, ",", -1)
    
  'アクティブブックとアクティブシートの指定  
  Workbooks("0371.xls").Activate
  Worksheets("新規").Activate
    
    '指定したセルにデータを書き込む
    For j = 1 To 7
    Select Case j
    Case 1
      myRange2 = ActiveSheet.Cells(1, 1).Address
    Case 2
      myRange1 = ActiveSheet.Cells(3, 1).Address
      ActiveSheet.Range(myRange1).Value = "氏名"
      myRange2 = ActiveSheet.Cells(3, 3).Address
      ActiveSheet.Range(myRange2).Value = myArray2(1)
    Case 3
      myRange1 = ActiveSheet.Cells(5, 1).Address
      ActiveSheet.Range(myRange1).Value = "生年月日"
      myRange2 = ActiveSheet.Cells(5, 3).Address
      ActiveSheet.Range(myRange2).Value = myArray2(2)
    Case 4
      myRange1 = ActiveSheet.Cells(7, 1).Address
      ActiveSheet.Range(myRange1).Value = "入社年月日"
      myRange2 = ActiveSheet.Cells(7, 3).Address
      ActiveSheet.Range(myRange2).Value = myArray2(3)
    Case 5
      myRange1 = ActiveSheet.Cells(9, 1).Address
      ActiveSheet.Range(myRange1).Value = "職能"
      myRange2 = ActiveSheet.Cells(9, 3).Address
      ActiveSheet.Range(myRange2).Value = myArray2(4)
    Case 6
      myRange1 = ActiveSheet.Cells(11, 1).Address
      ActiveSheet.Range(myRange1).Value = "所属"
      myRange2 = ActiveSheet.Cells(11, 3).Address
      ActiveSheet.Range(myRange2).Value = myArray2(5)
    Case Else
      myRange1 = ActiveSheet.Cells(13, 1).Address
      ActiveSheet.Range(myRange1).Value = "位"
      myRange2 = ActiveSheet.Cells(13, 3).Address
      ActiveSheet.Range(myRange2).Value = myArray2(6)
    End Select
    Next
    
  Loop
  Exit Sub
Macro1_Err:
  MsgBox "INFILE Error!"
  Exit Sub


End Sub
>>jakaさんへ
いろいろ迷惑かけてすみませんでした。少ない情報でいろいろアドバイスして頂き有難うございました。今度質問する時は気をつけたいと思います。

>>Fukuさんへ
そのとうりでした。配列に入れた時点で1978だけになっていました。

0 hits

【6837】日付をファイル間で・・・ スヌーピ- 03/8/6(水) 16:42 質問
【6839】Re:日付をファイル間で・・・ Jaka 03/8/6(水) 17:17 回答
【6841】Re:日付をファイル間で・・・ スヌーピ- 03/8/6(水) 17:35 質問
【6848】Re:日付をファイル間で・・・ Jaka 03/8/7(木) 15:50 回答
【6850】Re:日付をファイル間で・・・ スヌーピ- 03/8/7(木) 17:03 お礼
【6846】Re:日付をファイル間で・・・ Fuku 03/8/7(木) 10:46 回答

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