Excel VBA 自動作成

 

拡張機能編

 

目次

 

           作成シートコピー

           ヒストグラム

           印刷表作成

           表転記

           ブック分割

           予約

           汎用マクロ

 

 

作成シートコピー

 

シートを新規ブックにコピーします。

処理した結果のシートを新規ブックに複数シート作成するとき使用します。

 

設定方法

 

結果 

新規ブックに結果3〜結果6 が作成されました。

 

 

ヒストグラム

 

層別データを使って、入力データからヒストグラムを作成します。

 

入力表

入力データ (一部)

層別データ

 

設定方法

 

 

結果 

入力データにフィルタをかけると、表示されているデータのみのヒストグラムが表示されます。

 

 

印刷表作成

 

列の少ない大量のデータを印刷するとき、複数列に変更し、紙を節約します。

 

入力表

あらかじめフォーマットを作っておきます。

 

設定方法

 

作成されたプログラム

Sub 印刷表作成()

Dim INS, OUS, ENDROW, INR, OUR, OUEN, K, C, CM, R, MR, ML, ST

Application.ScreenUpdating = False

Set INS = Sheets("Sheet8")   '入力出力シート

Set OUS = Sheets("Sheet9")   '入力出力シート

 ENDROW = INS.Range("$A65536").End(xlUp).Row

    If ENDROW < 3 Then

        Exit Sub

    End If

MR = 3 '列数

CM = 3 '繰返し数

ML = 45 '1ページの行数

INR = Array("A", "B", "C", "A", "B", "C", "A", "B", "C") '入力列

OUR = Array("A", "B", "C", "E", "F", "G", "I", "J", "K") ''出力列

OUEN = 3 ''出力開始行

'OUS.Range("A” & OUEN &":"& "IV" &"65536".CLEARCONTENTS '全消去

OUS.ResetAllPageBreaks '改ページ解除

ST = 3 '入力表開始行

Do

  For C = 1 To CM  '繰返し数

    For R = 1 To MR '列数

       K = LBound(INR) + (R - 1) + (C - 1) * MR

       INS.Range(INR(K) & ST & ":" & INR(K) & ST + ML - 1).Copy

       OUS.Range(OUR(K) & OUEN).PasteSpecial Paste:=xlValues

    Next R

    ST = ST + ML

  Next C

  OUEN = OUEN + ML

  OUS.HPageBreaks.Add Before:=OUS.Range("A" & OUEN)

Loop While ST <= ENDROW

End Sub

 

結果 

改ページも自動挿入されます。

 

 

表転記

 

入力表を出力表に列、行を変えて転記します。縦横入替もできます。

 

入力表

 

設定方法

 

作成されたプログラム

Sub 表転記()

Dim ins, ous, k, j

Set ins = Sheets("Sheet3")

Set ous = Sheets("Sheet4")

'

ing = Array(7, 5, 4, 6) '入力行または列

INR = Array("A", "D", "C", "B")  '入力列または行

oug = Array(4, 5, 6, 7) '出力行

OUR = Array("B", "D", "F", "H")  '出力列

 

For k = LBound(OUR) To UBound(OUR)

  For j = LBound(oug) To UBound(oug)

    Set oud = ous.Range(OUR(k) & oug(j))

    ''oud.Interior.ColorIndex = COL '色付

      oud.Value = ins.Range(INR(k) & ing(j)).Value

  Next j

Next k

Application.ScreenUpdating = True

End Sub

 

結果 

型式

価格

5

 

4

 

3

QV3000EX

10

44

 

88

 

333

E10

20

22

 

66

 

111

C3000ZOOM

30

11

 

55

 

99

POWERSHOTS20

40

33

 

77

 

222

 

110

 

286

 

765

 

 

ブック分割

 

顧客等のキーをもとに、入力データを別のブックに保存します。

1ブック複数シートに分割も可能です。

 

入力表

 

設定方法

 

結果 

顧客別にブック分割され、指定したホルダに保存される。

データA

データB

 

 

予約

 

顧客の注文に在庫や注残を割り当てるなど予約の処理を実施します。

(予約を固定する機能はありません)

 

入力表

受注

在庫、注残

 

設定方法

 

結果

納入予定日を表示します。×は発注不足。

 

手配オーダーを表示するにはプログラムの修正が必要です。

 

右の数字は残数です。

 

 

汎用マクロ

 

プログラム例を出力します

全シートフィルタ解除

プログラムの先頭で、フィルタの解除、データの消去を実施する

処理ブックアクティブ

年月が付く等、名前が変わるブックのデータを処理する場合、そのブックをアクティブにする

スリープ

1mm秒待つ関数

出力ブック選択読込

出力するホルダを選択

csv出力

シートをCSVで出力

メニューバー

メニューバーの表示

NO列名変換

列のカラム番号を列名に変更 例 26-->"Z " 27-->"AA"

上のホルダ

上のホルダを求める 例 D:\DATA\AAA.TXT-->D:\DATA

 

設定方法

使うプログラムを選択します。

 

基本編  追加機能編  HOME