会社を卒業したのんちおじさん。

人生は知恵と工夫と思いやり!
優しさほど強いものはなく、本当の強さほど優しいものはない -ラルフ・W・ソックマン-

窓の形をマクロで

2009-03-07 10:23:11 | Excelのお話
そしてこの発注シートでまだ出来ていないことがあります。

この製品(ユニット型表示灯)照光部の形状はすべて四角、そして基本形の四角を縦横に組み合わせたもの、そしてそれぞれをさらに組み合わせたものがあります。

Fタイプ・基本の正四角形の照光部
Hタイプ・Fタイプを二つ横に並べた形状
Vタイプ・Fタイプを二つ縦に並べた形状
Lタイプ・Fタイプを三つ横に並べた形状
Gタイプ・Fタイプを縦二つ、横二つ並べた形状
  
  ・
  ・
  ・

ほかにもありますが現行みんなが使っている発注シートは全面がFとかHとかの一律の窓形状にしか対応していなかったのです、上記の窓形状のほかに「Mタイプ」という上記それぞれをごちゃまぜに混載したものがありこれがまだ出来ていないこと。

エクセルをある程度使える人ならばセル結合を組み合わせれば実はそれほど難しいことではないのですが職場のほとんどは限りなく素人に近いレベル、そして忙しいから時間をかけて作ることなどできない。

そこで今週に入ってからマクロで簡単に照光部の形状を作ることができるようにとやり始めました。

で、手始めに作ったのがこれ。

Sub Merge_V()
  Set n = ActiveCell
  Set h = Range(n, n.Offset(1, 0))
  Set Target = Range("印刷範囲")

  If Intersect(n, Target) Is Nothing Then Exit Sub

  With ActiveSheet
    .Unprotect
    For Each c In h
    With c
      If .MergeCells Then 'もし結合セルならば解除
        .MergeCells = False
        .Borders.LineStyle = True
      End If
    End With
    Next c
  Set h = Range(n, n.Offset(1, 0)) '結合範囲を再設定
    With h
      .MergeCells = True       '改めてVタイプにセル結合
      .Borders.LineStyle = True
    End With
    .Protect
  End With

End Sub

これは縦二つのVタイプ用です。

「入力規則」

2009-03-07 09:21:30 | Excelのお話
いろいろな形状、色、電源を組み合わせて注文するユニットタイプの表示等があり2種類のシリーズがあります、そのシリーズ型番によって後ろにぶら下がる明細の選択肢が変わります。

組み合わせは無限と言っていいほどあり、それを注文するには結構な労力と時間がかかります、そこで何とかそれを省力化できないかとその商品の発注シートなるものを作り始めたのが2003年のことでエクセルを使い始めてそれほど経っていない頃のことでした。

自分でもよくぞこんなものを作ったなと思いますがみんなが便利に使ってくれているのがとても嬉しい限りです。

しばらく忙しかったのですが少し時間が出来たので以前から気になっていたところに手を加えようと思いました、「入力規則」と言う機能がエクセルにはあり、当然以前から使っていたのですがもう少しスマートに「入力規則」を使うことはできないかと調べてみたら「INDIRECT関数」を使うことでそれぞれの文字列によって数種類の選択リストを切り替えられることが分かりました。

理屈自体はそう難しいものではないのですがこの発注シート、関数や数式が縦横に絡み合っていて結構大変な作業になってしまいましたが何とか出来ました。

そして・・・。