[[20081219083939]] 『寸法公差の自動表示のさせ方』(sandy) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『寸法公差の自動表示のさせ方』(sandy)

はじめて質問させて頂きます。
寸法値を入力したら勝手に寸法公差を表示させたいのですが、検索で寸法公差を自動入力でされてた方がいましたが、一覧表を作成してそこから認識させていたようです。

寸法値は小数点第1位までのものがあり更に寸法値の前に"φ"が付いたり寸法値の後に"はめあい"の"H7"とかが付く場合もあります。どんな寸法値が入力されるのか解らないので一覧表にするのは少々厳しくて出来れば範囲指定で下記の様に設定して自動で認識出来ないでしょうか。宜しくお願い申し上げます。(Excel2003 Windows XP使用)

0.5〜6以下は±0.1

6を超え30以下は±0.2

30を超え120以下は±0.3

120を超え400以下は±0.5

400を超え1000以下は±0.8

1000を超え2000以下は±1.2

2000うぃ超え4000以下は±2


 こんな感じで出来ますか?

 '------
Function kousak(adrs As Range)
    Dim mch As Object, totl As Double
    With CreateObject("vbscript.regexp")
        .Pattern = "\d+\.{0,1}\d*"
        .Global = True
        If .test(StrConv(adrs, vbNarrow)) Then
            Select Case .Execute(StrConv(adrs, vbNarrow))(0)
                Case Is <= 0.5
                    kousak = "±0"
                Case Is <= 6
                    kousak = "±0.1"
                Case Is <= 30
                    kousak = "±0.2"
                Case Is <= 120
                    kousak = "±0.3"
                Case Is <= 400
                    kousak = "±0.5"
                Case Is <= 1000
                    kousak = "±0.8"
                Case Is <= 2000
                    kousak = "±1.2"
                Case Is <= 4000
                    kousak = "±2"
                Case Else
                    kousak = "その他"
            End Select
        Else
                    kousak = ""
        End If
    End With
End Function
 '------

 (HANA)

HANAさん!早速のお返事ありがとう御座います!これはVBEの設定で宜しいんですよね・・・
で、上記内容を下記要領で作業してみました。

エクセル起動、設定したいブックだけを開いておきます。
Altを押しながら F11(ファンクションキー)を押す。
VBEと言うものが起動します。
VBEのメニューで 挿入>標準モジュール としてマクロを書き込む場所を作成します。
マクロを現れたコードウィンドウに貼り付けます。
Altを押しながらQキーを押して、エクセルに戻ります。
ブックを上書保存して、いったん閉じます。
再度ブックをマクロ有効にして開きます。

しかし!マクロが現れません(涙)
私の設定方法が悪いんでしょうね・・・
もし宜しければ、設定方法を御伝授願えませんでしょうか。
宜しくお願い申し上げます。


 はっっ、ごめんなさい。
 貼付方法までは完璧です。

 後は、例えばA1セルに「φ130はめあいH7」と入っているとして
 B1セルに =KOUSAK(A1) と入れると
 ±0.5 が表示されます。

 やってみて下さい。

 (HANA) 

HANAさん!
感激です!出来た!出来た!凄い!本当に有り難う御座います。これで作業スピードがかなり早くなって楽になります。本当に有り難う御座いました。

 私はマクロ音痴なので[HANA]さん御提示のマクロの処理がどうなっているか分かりませんが、
 はめあいのH7などが書かれている場合は、このような公差にはなりませんので念のため。
 (ちゅうねん)

 おっと、失礼しました。

 数値が一桁の場合がだめですね。
 >.Pattern = "\d+\.{0,1}\d+"
 は
   .Pattern = "\d+\.{0,1}\d*"
 に変更します。
 上記コード内も変更しておきます。

 ちゅうねんさん、ご指摘ありがとうございました。

 なお、最初に出てきた数値を寸法値とみなして結果を出します。
 寸法値以外の数値は、寸法値より後に持ってきてください。

 ・・・その前に、まだ見てくださると良いのですが。

 (HANA)

 私が
 > はめあいのH7などが書かれている場合は、このような公差にはなりません
 と書いたのは、H7 という表記は穴の公差を示すもので、たとえば「φ130H7」と書かれていると、
 公差は+.04 −0 という設計意図です。±0.5を意図したものではありませんよという意味でした。
 これらはめあいの公差は、JIS B 0401 で決められています。
 (ちゅうねん)

 つまり
  はめあいH7やH7と有った場合は
  それ自体が公差を現しているので
  寸法値から決められた公差とは一致しない
 と言う事ですかね。

 いずれにしても、寸法値が1桁の場合に
 上手く計算出来ない式だったので
 ちゅうねんさんには感謝です。

 「H7」と付いていた時にどうするのかは
 御質問者さんが言って来られたときにでも
 また考えようかと思います。

 (HANA)

 > つまり
 >  はめあいH7やH7と有った場合は
 >  それ自体が公差を現しているので
 >  寸法値から決められた公差とは一致しない
 > と言う事ですかね
 はい、そうです。

 やっかいなのは、アルファベットにも数字にもいくつかのバリエーションがあって、それぞれで意図する
 公差が異なります。さらにその前に書かれた寸法値(例えば130)の大きさによっても公差が異なります。
 質問者さんがそこまで分かってくれていれば良いのですが。
 (ちゅうねん) 

 HANAさん
 \d+(\.\d+)? の方がよいかもしれません。
 (ROUGE)

 ですね〜。
 精進します。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.