A2セルに入力された数値が公差表の該当する行を探し出し、C2セルに入力されたはめ合い記号の列を探し出し、交差する箇所の数値が上側公差となります。例えば、A2セルの値が11で、C2セルがf6とすると、図3の9行目と4列目の交差するセルの値、すなわち-16が上側公差となります。
検索する手法は各種ありますが、ここでは該当する行を「vlookup」関数で、列は「match」関数で探させることにします。vlookup関数は、指定した範囲(upper)の最初の列(A列)でA2セルと一致した行を探し出し、指定した列(後ほどmatch関数で指定)の行のセルを表示します。ここで、どの範囲に属しているかを探すので、4番目の引数は近いものを検索するTrueにします(trueの場合、省略できるので今回は省略)。また、表は「を超え」と、その値を含まないものになっているので、わずかに小さな値になるようにA2-0.000001とします(A2セルの値よりも1ナノメートルほど小さな値となりますが、実用上は問題ないと思われます)。こうすると、A2セルが10であったとしても、図3では、前の行の8行目を選択します。
次に列の選択はmatch関数を用います。match関数はmatch(検査値、範囲、0)とすると、範囲の中で検査値と一致する列あるいは行番号を返します。例えば、「match(C2,A5:V5,0)」とすると、C2がf6であった場合、4を返します。
以上を図4に示すようにD2セルに入力すると、上側公差を検索できます。
また、下側公差は、vlookup関数の検索範囲をlowerとして、図5に示すようにE2セルに入力します。
同様にして、穴側の公差の検索式をD3セル、E3セルに入力します。
次に、寸法範囲を計算、表示させます。図6は軸の寸法範囲を「text」関数で表示させたものです。
text関数は、数値を文字列に変換する関数で、「0.000」は、書式の制御で小数第3位まで表示させるという意味です。文字列は、&記号で連結できます。
ここまで入力したシートはこちらからダウンロードできます。
次にウィンドウを実装する方法について説明します。
まず、ウィンドウに表示させる背景画像を用意します。CADなどで作図して画像を用意します。サンプル画像はこちらからダウンロードできます。
画像が用意できたら、VBAエディタを起動し、ウィンドウを作成します。
Alt+F11キーを押して、VBAエディタを起動します。VBAエディタについては、前回記事を参考にしてください。
「挿入」→「ユーザーフォーム」とクリックし、ユーザーフォームを作成します。ユーザーフォームはデフォルトでは、大きさが240×180ピクセルとなりますので、これを貼り付ける背景画像の大きさに合わせて変更します。左下のプロパティウィンドウで、「Width」(幅)を500、「Height」(高さ)を250に変更してください。
合わせて、例えば「Caption」を「はめ合い公差」などに変更すると、ウィンドウにタイトルが表示されます。
次に、出来上がったユーザーフォームに背景として、用意した図を貼り付けます。プロパティウィンドウで「Picture」欄をクリックすると、右側に「...」が現れるので、これをクリックすると、ファイル選択ウィンドウが開きます。ファイル選択ウィンドウで用意した画像ファイルを選択し、「開く」をクリックすると、ユーザーフォーム中央に画像が表示されます。次に、画像をユーザーフォームの大きさに合わせるために、「PictureSizeMode」欄で「1-fmPictureSizeModeStretch」を選択してください。すると、図7に示すように、ユーザーフォームいっぱいに画像が広がります。
画像はユーザーフォームに組み込まれるので、以降、画像ファイルは不要です。
Copyright © ITmedia, Inc. All Rights Reserved.