DL無料!雑誌と書籍の在庫リストをエクセルVBAで作成。改訂版

shosizaikokaiteieyecatch

こんにちは、じゅんぱ店長(@junpa33)です。

今までも多くの方にダウンロードいただいております、

「雑誌と書籍の在庫リスト」について、バージョンアップを行いました。

今回の改定は、エクセルVBAコードの一部追加になります。

そしてこちらの記事から、新バージョンのダウンロードを行っていただけるようにしています。

 

今回の改定は以下のようになっています。

なを、操作方法は変更していませんので今まで通りの操作でご利用いただけます。

 

今までのバージョンを確認いただくのはこちら↓からご確認ください。

【棚卸し】無料!在庫管理表の作成が面倒でなくなるエクセルVBAソフト

 

雑誌と書籍の在庫リスト関連の記事はこちらになります。

「棚卸表作成」の記事一覧を開く

 

雑誌と書籍の在庫リスト。新バージョンへの変更点

 

今回の変更点

 

「コード入力表」シートへ、バーコードリーダーで読み取り入力を行っているときに、

一定冊数の入力を行ったときに、「エクセルVBA」がハングアップしてしまう事があります。

shoshiVU000a

 

このような「スタック領域が不足しています。」と表示され、エクセルを強制終了させないといけなくなります。

 

エクセル自体の「自動保存の起動タイミング(分)」の設定で自動保存が実行されますが、

エクセルを強制終了すれば、エクセル起動後入力した入力データの保存実行されていない部分は失われます。

 

このアラートが出る前に、事前に予測の上で「上書き保存」を行いながら入力作業を進めていただければ、

アラートを出さずに続けて入力作業を行うことが出来ます。

 

自分の場合は、概ね47冊のバーコード読み取り入力でアラートが発生しましたので、

40冊ほどで入力を中断し「エクセルBOOKの上書き保存作業」を行う形で作業を継続していました。

 

改善したポイント

 

入力した冊数を自動でカウントします。

それぞれお使いになっているPCの環境で違っては来ますが、入力した冊数が30冊程になった時点で

VBA上に、自動でこのエクセルBOOKの上書き保存を行うようなコードを記述しました。

 

この方法で、問題点になっている「スタック領域の不足」を解放をするようにしました。

 

データ入力作業については、変わらず続けて行っていただくことが出来ます。

ただし、この上書き保存作業時には、画面の表示が変わりますのでご注意ください。

表示される画面について

 

上書き保存作業時の画面の表示については、このようになります。

 

shoshiVU001a

「A列のセルをアクティブにしてください。」のメッセージが出ます。

「OK」をクリックします。

shoshiVU002a

次に「コードを入力を 終了の場合はキャンセルを」のメッセージが表示されます。

「キャンセル」をクリックします。

 

初期状態に戻りましたので、A列のいずれかのセルをクリックしてください。

 

このあとセルがA列の入力位置に戻り、入力スタンバイに戻ります。

shoshiVU003a

 

このように画面的には、順次メッセージが切り替わります。

 

変更追加したVBAコード

 

追加するVBAコードは2か所になります。

修正コード②

 

A列にISBNコードをバーコード入力すると同時に「F列」に「〇」マークを付けます。

Range(“F” & x) = “〇”           ’修正コード②

 

修正コード①

 

F列でチェックした「〇マーク」の数を数えて入力データの数(冊数)を調べます。

 

今回の修正コードでは、一度に30冊を処理する設定にしています。

冊数を数える方法は、「〇マーク」を付けた最初の行ナンバーと最後の行ナンバーを使ってカウントしています。

スタック領域の解放は、データを入力したこのエクセルBOOKを上書き保存することでおこないます。

 

aRowa = Cells(1, 1).End(xlDown).Row     ’修正コード①追加ここから
fRowa = Cells(Rows.Count, 6).End(xlUp).Row
fRowb = Cells(1, 6).End(xlDown).Row
If aRowa > fRowa Then Columns(6).Clear

  If fRowb = 1048576 Then fRowb = 1

  If fRowa – fRowb > 31 Then
    Application.EnableEvents = False
    Cells(fRowa, 1).Clear
    Columns(6).Clear
    Cells(fRowa, 1).Select
    ActiveWorkbook.Save
    Application.EnableEvents = True
    Columns(6).Clear
    Exit Sub
  End If                   ’修正コード①追加ここまで

このようになります。

shoshiVU004a

 

コードの記入位置を間違えるとVBAが動きませんので、間違わないようにしましょう。

 

追加修正のまとめ

 

シートイベントを使ったVBAは「スタック領域の不足」がよく発生します。

不足解除のためのこれといったVBAコードがあるわけでもありませんので、

今回は、ポピュラーな解決策の「上書き保存」で対応することにしました。

 

大量の処理をする場合、またどこかの時点でスタックエラーが発生するかもしれませんが、

その時はまた「上書き保存」で対応していただければと思います。

修正追加した「雑誌と書籍の在庫リスト」はこちら↓からダウンロードすることが出来ます。

 

いつもと同様、

こちらの方はVBAコードを保護していますので、使う側でのVBAコードのカスタマイズを行うことはできません。

このソフトはご自分で業務でお使いいただくのはフリーですが、
転載や転売については許可しておりませんので、ご使用にならないよう固くお断りいたします。

 

ダウンロードはこちら↓

“改訂版雑誌と書籍の在庫リスト本体” をダウンロード syoshizaiko2005.zip – 1594 回のダウンロード – 65 KB

 

このソフトはご自分で業務でお使いいただくのはフリーですが、

転載や転売については許可しておりませんので、ご使用にならないよう固くお断りいたします。

 

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAを独学で習得するためのポイントは?良書との出会いは重要

 

エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。

 

エクセルVBAを使いだして、始めのうちに知っておきたい内容を纏めています。

「VBA最速理解」の記事一覧を開く

 

今回の記事はここまでです。   最後までご覧いただき有難うございました。

 

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。