

![]()

外部データの合体
東京・名古屋・福岡営業所のエクセルブックの処理
大量データ(ビッグデータ)から特定の文字が含まれているデータを抽出する
(3)食堂の計算
アマノ社等の業務システムから取り出した毎日の食堂の売上データ(CSV形式)をエクセルに変換する
エクセルを加工処理して給与奉行等のパッケージにインポートできるデータ(CSV形式)を作る
メイクショップの注文データからカテゴリー(店)別の納品書を作成する



関数の作り方の勉強になります
(7)プログラムを短くしよう
プログラムは短い方がわかりやすいし修正も容易になります。
基礎がわかればプログラムを短くする方法を考えていきましょう。

ピポットテーブルはデータ分析ツールとしてエクセルでよく使われる作業です。
改良されて使いやすくなっていますが、データが追加になった場合は選択範囲を変更しなければなりません。
条件を入力して定型業務として使う場合はVBAで作らないと面倒です。
消費税が5%から8%に変わります。
エクセルの式の中に0.05の数字を使っている箇所が多数ある場合VBAで自動で見つけるサンプルを紹介します。

現金出納帳から毎月の収入の部・支出の部を計算して予算対比する簡単なシステムです。
それでもエクセルで集計して収入の部・支出の部に転記する作業は時間がかかります。
今回はその作業をボタンひとつで合理化するプログラムです。

得意の名前の付いているCSVファイルを1つのブックに集めるプログラムです。
ファイルを指定したフォルダーにコピーするプログラムも参考にしてください。

各シートを一回で印刷したい時があります。
数行しかないデータのシートを1枚ずつ印刷するとみにくいばかりでなく、紙の無駄になります。
そのようなときに1枚にまとめて印刷できれば助かります。
発想の転換ですが各種シートを1枚の印刷用シートに合体してその印刷用シートのみを印刷すれば可能です。

データを部分検索するとき同じデータがあった場合どの行を選択するかはリストボックス のあるフォームを使えば便利です。 まゆみという文字を検索するには文字列の位置を返すInStr関数を使います。 InStr(Worksheets("名簿").Cells(i, 2), RTrim(Worksheets("入力シート").Cells(2, 2))) 戻り値が0でなければデータがあると判断します。 該当データが1件の場合はフォームを出す必要がありませんので件数を判断します。

マクロの記録で作った並び替えを部品集に公開していますが、中身を理解せずに使っていると、困る時があります。
今回先頭行が並び変わっていない問題が発生しました。
集計をとった結果がうまくいかないので調べてみると原因がわかりました。
VBA実践塾の並び替えの部品は先頭行を使わない部品です。
先頭行を使わない範囲を設定しています。
エクセルで並び替えると先頭行を見出しとして使うにチェックが入っているかで変わってきます。
.Header = xlNoかxlYesを理解していれば問題ないのですが、マクロの記録を使わない部品を作りました。
少ないデータでは使えますが、大量データはスピードが遅いのでエクセルのソートを使ってください。

別のブックに同じ形式のシートがあります。
シートを比べて各セルの違いのあるセルに差を転記するプログラムを考えて見ましょう。

(16)日付上中下変換関数を使った例
別のブックに同じ形式のシートがあります。
シートを比べて各セルの違いのあるセルに差を転記するプログラムを考えて見ましょう。

Sub 変換()
Dim i As Long
Dim lastrow As Long
lastrow = Worksheets("元").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastrow
Cells(i, 5) = 日付変換(Cells(i, 2))
Next
End Sub
Function 日付変換(文字型日付 As String)
Select Case Val(Mid(文字型日付, 9, 2))
Case Is <= 10
日付変換 = Str(Val(Mid(文字型日付, 6, 2))) & "上"
Case Is <= 20
日付変換 = Str(Val(Mid(文字型日付, 6, 2))) & "中"
Case Else
日付変換 = Str(Val(Mid(文字型日付, 6, 2))) & "下"
End Select
End Function
見積システム 対象:基礎コース受講者3000円(税抜き)
販売システム 対象:基礎コース受講者3000円(税抜き)
財務システム 対象:基礎コース受講者3000円(税抜き)
給与システム 対象:基礎コース受講者3000円(税抜き)
原価システム 対象:基礎コース受講者3000円(税抜き)
介護システム 対象:基礎コース受講者3000円(税抜き)