Vol.885 22.Dec.2023

Excel_VBAのチップス 富山のミニ旅行(2)呉西編

E Excel_VBAのチップス

by fjk

 最近、いろいろなプログラミング言語を使っていると、関数や言語規約にチョット混乱してきているので、久しぶりにExcelで他のシートを参照するVBAプログラムを作成した時にメモったこと。
 ※以下、範囲で使いたい場合は Cells(r,c)Rang("A1:B2") 等に置き換えること[イタリックは変数]。

  1. With文の利用
    Withを使うと、ドットを付けるだけで参照シートを利用できる
    With Worksheets("参照")
      .Cells(r,c)
    ' "参照"シート(r:行、c:列)のセル。r,cは1から開始。
      Cells(r,c)
    ' ドットが無いと、カレントシートのセル
    End With
    ' With節が長いと、End Withは忘れがち
  2. セルのブランク(空白)チェック・ブランク化
    If文で以下の方法がある。
    @ 空白文字か?
    Cells(r,c) = ""
    A 文字数が0か?
    Len(Cells(r,c).Value) = 0
    B セルが空(Enpty)か?
    Cells(r,c) = Empty
    C IsEmpty関数を使用
    IsEmpty(Cells(r,c))
    D Formulaプロパティ
    Cells(r,c).Formula = ""
    E TypeName関数使用
    TypeName(Cells(r,c)) = Empty
    @ADの場合、セルに関数が入っていて、その結果が空白の場合、空白(TRUE)と判断される。
    同じような関数でも、微妙に異なるので、ケースバイケースで対応
    【用途別に纏めると】
    (a)セルに何も入っていないことを確認するには、
    If IsEmpty(Cells(r,c)) Then
         または、
    If Cells(r,c)).Formula = "" Then
    (b)計算を含めて、「結果が空白か」であれば、
    If Cells(r,c) = "" Then
         または、
    If Len(Cells(r,c)) = 0 Then
         または、
    If Cells(r,s) = Empty Then
    (c)数式が入っている場合を除くには、
    If Not Cells(r,c).HasFormura Then
       と数式かどうか判断の後、上記(b)を実行
    (d)セルを何もデータが無い空白にするには
    Cells(r,c) = ""
  3. セルの書式
    通常は、マクロ実行前に、セルに書式を事前に指定しておけばOKだが、マクロ中で指示するには、
    例えば、和暦で”令和5年12月22日”と表示したい時は、書式として "ggge年m月d日" を指定
    Cells(r,c).NumberFormatLocal = "ggge年m月d日"
    差込フィールドコードで指定するには
    { MERGEFIELD "フィールド名" \@"ggge年m月d日" }
    また、セル書式を変数sに取得するには
    s = Cells(r,c).NumberFormatLocal
    よく使う例として、金額など数値にカンマを付ける場合
    { MERGEFIELD "フィールド名" \#0, }
  4. 文字・背景の色チェック・セット
    セルの文字色の取得は
    col = Cells(r,c).Font.Color
    セルの文字色の指定は
    Cells(r,c).Font.Color = RGB(red,green,blue)
      または、カラーインデックスで
    Cells(r,c).Font.ColorIndex = colorIndex
    セルの背景色の指定は
    Cells(r,c).Interior.Color = RGB(red,green,blue)
      または、カラーインデックスで
    Cells(r,c).Interior.ColorIndex = colorIndex
    セルの文字色を消すには
    Cells(r,c).Font.ColorIndex = 0
    セルの色を消すには
    Cells(r,c).Interior.ColorIndex = 0
    セルの色・書式もクリアするには
    Cells(r,c).ClearFormats
  5. For文、Do文でループから脱出
    Forループの中からはExit For文でループから脱出できるが、Next以降へと移る
    Doループの中からはExit Do文でループから脱出できるが、Loop以降へと移る
    Goto文は多重ループからの脱出などに使えるが、なるべく使わない方が良さそう
    Continue文がなくループの先頭に戻れないので、if文を使うか、Goto文でNextやLoopまでスキップ
  6. 文字列の連結
    文字列は"+"、"&"で連結できるが、数値の場合はstr()関数で文字列に変換すること
  7. デバッグ・テスト
    プログラム開発時には、一発でOKとなることが少なく、データの確認をしたいことがよくある。そんな時には、
       Debug.Print(message)
    と記述しておくと、イミディエイト・ウインドウにメッセージなどを表示できる。
  8. ボタンを作って、シートで使えるマクロを登録
    カレントシートで使えるマクロを間違えないため、シートにボタンを貼付、マクロを登録しておく
     @ 「挿入/図形]からボックスなどを選びシートに貼付
     A 「テキストの編集」でテキストを入力、
     B 「図形の書式設定」で色や位置などを修正
     C 「マクロの登録」で実行したいマクロを指定する


T 富山のミニ旅行(2) 〜呉西(福光・小矢部・庄川)編

by fjk

 富山県内の日帰りミニ旅行の第2弾です。

棟方志功記念館(愛染苑)
「世界のムナカタ」と呼ばれた版画家の棟方志功は、昭和20年から6年8ヶ月、富山県の福光町(現南砺市)に疎開されていました。その間に居住された家が「愛染苑(あいぜんえん)」となっており、アトリエが「鯉雨画斉(りょうがさい)」、民芸館「青花堂(しょうげどう)」が隣接しています。また、近くには志功が当初身を寄せていた「光徳寺」もあり、寺には襖絵の「華厳松」などがあります。

棟方志功記念館(受付)

棟方志功記念館(愛染苑)

愛染苑の内部

戸板に描かれた作品

 
福光美術館
福光美術館は棟方志功の福光時代の作品の調査、収集、展示が行われている。
愛染苑と福光美術館は、お互いに割引券があります。

福光美術館

福光美術館と周辺地図
 
棟方志功の作品が多数(世界の「ムナカタ」がわかる美術館)

 
クロスランド小矢部
近くの小矢部ジャンクションにちなんで名付けられた施設で、展望タワーがシンボルとなっている。

クロスランド小矢部・展望タワー
 

地上100mの展望台からの景色
(北陸新幹線もよく見える)

 
鮎や
 富山県は急流の河川が多く、その河川で鮎釣りをする人が多く見られます。そして、鮎料理専門店として庄川沿いにある「鮎や」が有名です。鮎は庄川の伏流水を使った庄川産で、季節によっては天然物も味わえます。料理は炭火で焼いた「鮎塩焼き」が絶品ですが、「鮎や釜飯」もお薦めです。

店内風景

炭火焼き風景

鮎や釜飯

天然物の若鮎塩焼き

アクセス

周辺マップ


※ 本レポートの参考・利用は、あくまでも自己責任でお願いします。


Excel_VBAのチップス 富山のミニ旅行(2)呉西編