簡単にSAP入力作業を自動化して工数を90%以上削減する方法
9/5追記
この記事の発展版として「ExcelでSAPを徹底的に操る方法」という記事を書きました。こちらも併せて是非読んでください。
使っている会社は使っている業務基幹システムSAP!
皆大好きエンタープライズリソースプランニングソフトウェア!
最終工程では誰かが素晴らしい解析をしてるらしいけど、入力作業がクッッッッソ面倒くさいんだよSAP!!
という訳で、定型作業アレルギーの僕がSAPの入力作業を90%以上削減した方法を紹介します。
元々は20ページのマニュアル片手に30分かかっていた入力作業を3分で終わるようにしました。
なお、3分の内訳ですが、入力用データの準備に2分59秒、SAP入力に1秒(ボタンクリックのみ)です。
入力作業をマクロ化する
意外と知られていないのですが、そもそもSAPの入力作業は記録し、マクロ化する事が出来ます。
入力作業を記録する方法は以下の通りです。
①SAPでスクリプトを有効化する
SAPを立ち上げた直後の画面で左上のアイコンをクリックし、オプション画面を開きます。
以下の画面のように「ユーザー設定」から「スクリプト有効化」をONにし、「適用」→「OK」の順にクリックします。
②作業の記録
ログイン画面以降のウィンドウから、下図のアイコンをクリックし、「スクリプト記録と再生」を開きます。
「追加」ボタンを押して保存先を選択しておきます。
(今回はC:\SAPフォルダにlogin.vbsとう名前で保存します)
③実際に記録してみる
試しにログイン作業を記録してみます。
ログイン画面でスクリプトの記録を実行し、以下の作業を行います。
ユーザーに「user」、パスワードに「password」、エンターキーを押す。
記録が終わると指定したフォルダにファイルが作成されますので、これをメモ帳で開きます。
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
session.findById("wnd[0]").resizeWorkingPane 85,13,false
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "user"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "********"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").setFocus
session.findById("wnd[0]/usr/pwdRSYST-BCODE").caretPosition = 8
session.findById("wnd[0]").sendVKey 0
これがログイン作業を記録した結果です。
色々書いてありますが、今回の作業が記録されているのはこの部分です。
パスワードは保護されているので、*******で表示されています。
''ユーザー入力
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "user"
''パスワード入力
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "********"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").setFocus
session.findById("wnd[0]/usr/pwdRSYST-BCODE").caretPosition = 8
''エンターキー押す
session.findById("wnd[0]").sendVKey 0
③実行してみる
今度はこのマクロを実行してみます。
※パスワードの「*******」は正しいパスワードに変更して上書き保存して下さいね。
先ほどのログイン画面で「再生」ボタンを押して下さい。
「スクリプトからGUIに接続してようとしています」というウィンドウが表示されますので、OKをクリックします。
これでログイン作業が自動化出来ました。
定型作業であればこれだけでも十分便利ですが、入力内容が毎回変化する作業だとあまり有効ではありません。
これを補う為、Excel VBAでSAPを制御させます。
この方法なら、Excelで作ったフォーマットに入力するだけでSAPの入力も完了出来るようになる為、入力工数をほぼゼロにする事が出来ます。
ここから先は有料ですが、SAPの入力時間を限りなくゼロに出来ると考えれば十分元は取れると思います。
ちなみに筆者はSAPの入力工数削減の改善提案で5000円ぐらい(改善報奨金としては)荒稼ぎしました。
また、VBAが初めての人でも分かるように書いてありますが、もし分からない場合はtwitter等で気軽に質問してください。
ここから先は
¥ 1,000
この記事が気に入ったらサポートをしてみませんか?