過去ログ

                                Page     126
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼教えてくださいm(_ _)m  VB初心者 02/9/23(月) 16:13
   ┗Re:教えてくださいm(_ _)m  ぴかる 02/9/23(月) 20:11
      ┗Re:教えてくださいm(_ _)m  VB初心者 02/9/23(月) 22:25
         ┗Re:教えてくださいm(_ _)m  よろずや 02/9/23(月) 23:24
            ┗Re:教えてくださいm(_ _)m  ぴかる 02/9/24(火) 19:40
               ┗Re:教えてくださいm(_ _)m  こうちゃん 02/9/24(火) 20:36

 ───────────────────────────────────────
 ■題名 : 教えてくださいm(_ _)m
 ■名前 : VB初心者
 ■日付 : 02/9/23(月) 16:13
 -------------------------------------------------------------------------
   最近VBを仕事ではじめたました

質問なんですけれども

氏名コード 氏名 出勤
3019   平野 24
3269   川島 21
(空行)
5150   馬渕 19

というエクセルファイルから
氏名コードが数字のもの(3019、3269、5150)
を抽出するにはどのようにしたらよろしいでしょうか
先頭行と空行を読み飛ばしたいのです
わかる方がおりましたら回答お願いいたしますm(_ _)m
 ───────────────────────────────────────  ■題名 : Re:教えてくださいm(_ _)m  ■名前 : ぴかる  ■日付 : 02/9/23(月) 20:11  -------------------------------------------------------------------------
   VB初心者さん、こんばんは。

状況があまり理解できていないので的外れかもしれませんが、一般操作のオートフィルタにて氏名コードを抽出するのはどうでしょう?。数値コードが入っている部分すべてを抽出ならオプションにて「0より大きい」、空白以外なら「空白以外のセル」を選択すればOKです。また、この操作をマクロ記録してちょっち、編集してみるのもおもしろいかもネ!。
 ───────────────────────────────────────  ■題名 : Re:教えてくださいm(_ _)m  ■名前 : VB初心者  ■日付 : 02/9/23(月) 22:25  -------------------------------------------------------------------------
   ぴかるさん早速のレスありがとうございます。
僕の説明不足ですいませんが
また質問させてください。

Private Sub Command1_Click()

  Dim xlApp   As Excel.Application
  Dim xlBook   As Excel.Workbook
  Dim xlSheet   As Excel.Worksheet
  Dim strFileName  As String
  
  Set xlApp = CreateObject("Excel.Application")
  Set xlBook = xlApp.Workbooks.Open("C:\浜松CC勤怠.xls")
  Set xlSheet = xlBook.Worksheets("勤怠報告")

  strFileName = "C:\浜松CC勤怠.csv"
  xlBook.SaveAs strFileName, xlCSV
  
  xlBook.Close
  
End Sub

というPGを作りました。
浜松cc勤怠の勤怠報告のシートが

氏名コード 氏名 出勤
3019   平野 24
3269   川島 21
(空行)
5150   馬渕 19

で、エクセルシートの内容はかえないで、
3019   平野 24
3269   川島 21
5150   馬渕 19

というデータを抽出してCSVファイルで保存したいのです。
先頭行の見出しと
空行を読み飛ばす方法がわかりません
セルの1番目が数字だったら読み込むというふうにしたいのですが・・・

今のままだと
氏名コード, 氏名, 出勤
3019 ,  平野, 24
3269 ,  川島, 21
,,
5150 ,  馬渕, 19

になってしまいます

もしわかりましたら回答よろしくお願いいたしますm(_ _)m
 ───────────────────────────────────────  ■題名 : Re:教えてくださいm(_ _)m  ■名前 : よろずや  ■日付 : 02/9/23(月) 23:24  -------------------------------------------------------------------------
   >で、エクセルシートの内容はかえないで、

別に変えたっていいんじゃないですか?保存しなけりゃ。
 ───────────────────────────────────────  ■題名 : Re:教えてくださいm(_ _)m  ■名前 : ぴかる  ■日付 : 02/9/24(火) 19:40  -------------------------------------------------------------------------
   VB初心者さん、よろずやさん、こんばんは。

エクセルの内容を変えるなら、こんなんでOK?。(やり方は、色々あると思います。)

Sub TEST()

Dim 最終行 As Long
Dim 移動行 As Long
Dim フラグ As Integer
Dim I As Long
Dim J As Integer

  最終行 = Range("A65536").End(xlUp).Row
  フラグ = 0
  
  For I = 1 To 最終行
   If (フラグ = 0) And (Range("A" & I) = "") Then
   移動行 = I
   フラグ = 1
   ElseIf (フラグ = 1) And (Range("A" & I) <> "") Then
   For J = 1 To 3
    Cells(移動行, J) = Cells(I, J)
   Next
   Range(Cells(I, 1), Cells(I, 3)).ClearContents
   移動行 = 移動行 + 1
   End If
  Next
  
  Rows("1:1").Delete Shift:=xlUp

End Sub
 ───────────────────────────────────────  ■題名 : Re:教えてくださいm(_ _)m  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/9/24(火) 20:36  -------------------------------------------------------------------------
   ぴかる さん、VB初心者さん、よろずやさん、こんばんは。

>エクセルの内容を変えるなら、こんなんでOK?。(やり方は、色々あると思います。)

色々のうちひとつ:ABC列にデータがあるとして、範囲を選択して空白行を削除します。

  Range(Cells(1, 1), Cells(Range("A65536").End(xlUp).Row, 3)). _
  SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 126