Top> よくつかうプログラム> 食堂データの計算

食堂データの計算

VBA通信教材申込み

VBA課題解決型実践塾セミナー内容

申込 ヤフーショッピング

食堂データの計算

・アマノ社等の業務システムから取り出した毎日の食堂の売上データ(CSV形式)をエクセルに変換する。
・修正を行い月次のデータに合体する。
・月次の食堂利用データから社員で集計する。
・集計したデータをCSV形式で出力し給与奉行等のパッケージソフトにインポートする形式に変換する。

(a)CSV取り込み

食堂データの計算

Sub csv取り込み()
  Dim FileNamePath As Variant
  Dim textline, csvline() As String
  Dim Rowcnt, ColumNum As Integer
  Dim ch1 As Long
  Worksheets("毎日").Cells.Clear
  ch1 = FreeFile
  FileNamePath = "d:\移行データ\syokudou.csv"
  Open FileNamePath For Input As #ch1
  Rowcnt = 1
  Do While Not EOF(ch1)
    Line Input #ch1, textline
    csvline() = Split(textline, ",")
    Range(Worksheets("毎日").Cells(Rowcnt, 1), _
      Worksheets("毎日").Cells(Rowcnt, UBound(csvline()) + 1)) = csvline()
    Rowcnt = Rowcnt + 1
  Loop
  MsgBox "csvデータ取り込み終わりました"
End Sub

(b)取り込み修正したデータを合体する

食堂データの計算

今日の日が表示されていますので変更があれば訂正してOKボタンをクリックすると
その日付が入力されて合体されます。
Sub gattai()
  Dim hiduke As String
  Dim lastrow As Long
  Dim lastrow1 As Long
  Dim i As Long
  lastrow = Worksheets("毎日").Cells(Rows.Count, 1).End(xlUp).Row
  lastrow1 = Worksheets("合体").Cells(Rows.Count, 1).End(xlUp).Row
  hiduke = InputBox(Prompt:="合体日は", Default:=Date)
  For i = 2 To lastrow
    Worksheets("合体").Cells(lastrow1 + 1, 1) = hiduke
    Worksheets("合体").Cells(lastrow1 + 1, 2) = Worksheets("毎日").Cells(i, 1)
    Worksheets("合体").Cells(lastrow1 + 1, 3) = Worksheets("毎日").Cells(i, 2)
    Worksheets("合体").Cells(lastrow1 + 1, 4) = Worksheets("毎日").Cells(i, 3)
    lastrow1 = lastrow1 + 1
  Next
  For i = 2 To lastrow
    Worksheets("毎日").Cells(i, 1) = ""
    Worksheets("毎日").Cells(i, 2) = ""
    Worksheets("毎日").Cells(i, 3) = ""
  Next
  MsgBox "合体されました"
End Sub

(c)社員で集計したシートの作成

食堂データの計算

・社員を並び替えます
・社員の行と次の行の社員と比べて異なれば社員と金額計を別のシート社員計にコピーします。
Sub keisan()
  Dim lastrow As Long
  Dim i As Long
  Dim j As Long
  Dim kei As Long
  lastrow = Worksheets("合体").Cells(Rows.Count, 1).End(xlUp).Row
  Worksheets("作業").Cells.Clear
  Worksheets("作業").Cells(1, 1) = "社員"
  Worksheets("作業").Cells(1, 2) = "金額"
  j = 2
  For i = 2 To lastrow
    Worksheets("作業").Cells(j, 1) = Worksheets("合体").Cells(i, 2)
    Worksheets("作業").Cells(j, 2) = Worksheets("合体").Cells(i, 4)
    j = j + 1
  Next
'社員で並び替え
  Range(Cells(2, 1), Cells(lastrow, 2)).Select
  ActiveWorkbook.Worksheets("作業").Sort.SortFields.Clear
  ActiveWorkbook.Worksheets("作業").Sort.SortFields.Add Key:=Cells(2, 1), SortOn _
  :=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
  With ActiveWorkbook.Worksheets("作業").Sort
  .SetRange Range(Cells(2, 1), Cells(lastrow, 2))
  .Header = xlNo
  .MatchCase = False
  .Orientation = xlTopToBottom
  .SortMethod = xlPinYin
  .Apply
  End With
'社員計の計算
  j = 2
  Worksheets("社員計").Cells.Clear
  Worksheets("社員計").Cells(1, 1) = "社員"
  Worksheets("社員計").Cells(1, 2) = "金額"
  For i = 2 To lastrow
    kei = kei + Worksheets("作業").Cells(i, 2)
    If Worksheets("作業").Cells(i, 1) <> Worksheets("作業").Cells(i + 1, 1) Then
      Worksheets("社員計").Cells(j, 1) = Worksheets("作業").Cells(i, 1)
      Worksheets("社員計").Cells(j, 2) = kei
      j = j + 1
      kei = 0
    End If
  Next
  Worksheets("社員計").Select
End Sub

(d)集計したデータのCSV形式で出力

食堂データの計算

給与奉行等が受け入れる形式でCSV出力をする。
Sub csv作成()
  Dim FileNamePath As Variant
  Dim ch1 As Long
  Dim lastrow As Long
  Dim i As Long
  Dim data(1) As String
  FileNamePath = "d:\自分のデータ\ikou.csv"
  Worksheets("社員計").Select
  lastrow = Worksheets("社員計").Cells(Rows.Count, 1).End(xlUp).Row
  ch1 = FreeFile
  Open FileNamePath For Output As #ch1
  For i = 2 To lastrow
    data(0) = Cells(i, 1)
    data(1) = Cells(i, 2)
    Print #ch1, data(0); ","; data(1)
  Next
  Close #ch1
  MsgBox "csvデータ作成できました"
  Worksheets("メニュー").Select
End Sub

 

塾長あいさつ
基本方針(考え方)
通信教育内容
課題解決セミナー内容
初心者基礎コース内容
カリキュラム・料金
案内地図・各種リンク
問合せ・申込み
アベノ塾
システムの内製化
アサイコンピュータACS
応用部品集(有料)
販売管理(事例)
財務管理(事例)
顧客管理(事例)
見積もり(事例)
給与(事例)
介護(事例)
ゴースト暗算(事例)
部品集(部品の基礎)
部品集(シート関連)
部品集(データベース)
部品集(セル関連)
部品集(関数)
部品集(フォーム関連)
部品集(ブック関連)
部品集(その他)
変数の勉強
繰り返しと条件文
マスター登録.訂正.削除
フォルダー内のファイル
項目をシート名で作成
ブックの操作
CSVファイルの取り込み
呼び出し元・先
商品マスター検索
エクセル関数をVBAで
エクセル関数を使う
よくつかうプログラム
販売管理(ソース)
財務管理(ソース)
給与管理(概要・画面)
見積もり(概要・画面)
工程管理(概要・画面)
原価管理(概要・画面)