2017年5月13日土曜日

正直に申し上げます、業務アプリでエクセル&VBAに出来ないことはありませんと大ホラ - Excel2013・VBA(その他)

   
会社でエクセルのワークシートを使って、業務改善をちんたら実行中です。
というより、自己満足に近いマクロコードのプログラム作成ではありますが。

それで、今のところ、大抵の企業なら2013バージョンをお使いでしょう。
このエクセルでマクロを組むのですが、家にあるのは2010のエクセルです。

インドに出張中、屋台の売店で買った百ルピーの海賊版なのに完動品。
でも、画面が英語版なので、操作に慣れるのに、時間が掛かりました。

日本円の価値にすれば二百円と言う、あってないような値段なのですな。
それでも、簡単なマクロコードの組込みであれば、両方で動作しました。

サンプルプログラムを家に持ち帰って、動かしてみても特に問題ありません。
ところが、複雑なコードを組んで持ち帰ったら、実行途中でエラーが出ます。

 ”OptionButtonクラスのValueプロパティを設定できません”

よく分からんけど、要するに上位互換はあっても下位互換は無いのかな。
でも、たった三年のバージョン違いで、こんなにエラーがでるのかとびっくり。

普通言われているのは、2007以降のバージョンで作成したマクロのお話。
それ以前の古いバージョンだと、正常に動かないのが常識のお話でした。

定説ですが、昔、この言葉を連呼した新興宗教の教祖様もおりましたよ。
まあ、今時、2003版を使っている人は、探すのが難しいくらいでしょう。

そんでもって、両バージョンは、超えるに超えられない大規模なものなのか。
知っているのは、起動時、シートの表示が複数から単数に変わった点かな。

 以前は、MDI → Multiple Document Interface
 現行は、SDI → Single Document Interface

それぐらいで、アプリの中でどれほど大きな変化があったのは知る由もない。
VBA専門の講座へ行って教わったわけでもなく、ネットで独習だけが頼り。

それでも、実際に使用するファイルを数例作ったのは、窓際なりに誇らしい。
今回、タブレット用のアンケート用紙ファイルを自作したので、紹介します。

エクセルファイルをダウンロードしたい → ここをクリック
(アンケート実行画面は冒頭の画像)

なお、サンプルファイルは、未完成なので次の注事項を参考にしてください。
これを踏まえて、VBAが分かる人なら、改造も簡単ではないかと思います。

※1 ボタングループをシート上で非表示する場合、Alt + H + FD + P、全画面表示(ESC押)から通常画面に復帰させて設定

※2 ボタンのキャプション”オプション1、2....”は、削除してボタンだけにしてもOK。グループ化すると上から1,2,3の値の順番になる。

※3 ボタン回答の”はい、いいえ等”と、セルに書き込みをしても、対照できれば構わない。

※4 シート2~4は、見せる必要が無いので、アンケート完成時に、非表示にする。(Alt + H + O + U + S / 再表示:Alt + H + O + U + H)

※5 "アンケートを実際に使うときは、マクロコードの行列番号とグリッド線の消しこみを活性化させる。
(真偽の値を、TrueからFalseに変える)

 
コード内容は、
ActiveWindow.DisplayGridlines = False (改行)

ActiveWindow.DisplayHeadings = False (改行)

(Thiswoorkbookのプロシージャ記述。)"

※6 オプションボタンの保護について、シート保護を掛ける前に、ロックのチェックを外し、必要に応じて文字列のロックも外す。

※7 アンケートが完成したらシート全体をロック(保護)するが、記入欄のセル部分を解除することで、記入ができるようにする。

※8 オリジナルのファイルを開いてアンケートに使用した後。実際にセーブされるファイルは、日付のタイムスタンプをつけてセーブされるようになっている。(パスワード:12345)

というわけで、背後のシートでは回答率など、集計の解析もしております。
展示会などで、アンケート回答のためにタブレットを手渡されて答えているような風景も見かけますし、今やスマホを使ってアプリの操作をすることは常識の範囲内なので、こんなアンケート回答があっても構わないではないかと、思った次第なのでした。


おまけ:
実を申しますと、ダブルクリックすると、セルは保護されているというメッセージが出るのですが、これを非表示にできなくて悩んでおるのですよ。




いいねと思ったら、二つポチっとね!



0 件のコメント:

コメントを投稿