【Excelマクロ(VBa)】条件分岐(If)


 IF文


IF文は 下記のように記載します。

If 条件1 then
  条件1がTrueの場合に実行
ElseIf 条件2 then
  条件2がTrueの場合に実行
ElseIf 条件3 then
  条件3がTrueの場合に実行
Else
  条件1・2・3がfalseの場合に実行
  (上記の条件にどれも当てはまらない場合)
End If

条件1・条件2が共にTrueの場合、上記のように1つずつ書くと分かりにくくなるので、下記のように and を使って記載します。

If 条件1 and 条件2 then
  条件1・条件2が共にTrueの場合に実行
End If

条件1・条件2どちらかTrueの場合は下記のように or を使って記載します。

If 条件1 or 条件2 then
  条件1・条件2どちらかTrueの場合に実行
End If

例として四則演算の処理を記述します。
当然数値しか処理が出来ませんので、共に数値のチェックを行います。
また、割り算は、除数が 0 の場合は割り切れませんので、そのチェックも行います。

X = 6
Y = 0
If IsNumeric(X) And IsNumeric(Y) Then

  Z = X + Y
  MsgBox X & " + " & Y & " = " & Z

  Z = X - Y
  MsgBox X & " - " & Y & " = " & Z

  Z = X * Y
  MsgBox X & " * " & Y & " = " & Z

  If Y <> 0 Then
    Z = X / Y
    MsgBox X & " / " & Y & " = " & Z
  Else
    MsgBox X & " / " & Y & " = y は " & Y & "のため割り切れません"
  End If

Else

  MsgBox "数値ではありません"

End If

上記処理の結果は下記となります。


カテゴリー: VBa(Excelマクロ), システム開発 | コメントする

【ポケモンGO】バリヤード ゲットチャンス!(2017/8/9 ~)



Pokémon GO PARKが下記日時・場所で開催されます。(公式サイト)

開催日時 : 2017年8月9日(水) ~ 8月15日(火) 10:00~18:00
場所   : 赤レンガパーク・カップヌードルミュージアムパークの2会場
参加費  : 無料

ポケモンGOパークでは、なんとバリヤードがゲットできるそうです(#^.^#)

さらに、ポケモンGOパーク内でゲットできる2kmのタマゴから、いつもと違うポケモンが孵るとか?!

人が集まりすぎてポケモンGOが普通に動けば良いのですが・・・楽しみな一方で、非常に心配です(-_-;)

カテゴリー: ポケモンGO | コメントする

【Excelマクロ(VBa)】フォントの変更


 フォントを変更する


セルの文字フォントを変更するには、下記のように書きます。


'フォント名の変更

ActiveCell.Font.Name = "MS P明朝"

フォントに関わる内容は、フォント名だけではなく、・サイズ・太字イタリック下線(アンダーライン)がありますが、基本は同じで「~.Font.~」で設定します。



 複数フォントを変更する場合


複数フォントを変更する場合、下記のように変更内容を1行ずつ設定する方が良いのか、With ~ End With を用いた方がレスポンスが良いのか悩みどころです。

▽1行ずつ設定
'フォント名の変更
ActiveCell.Font.Name = "MS P明朝"
'太字
ActiveCell.Font.Bold = True
'イタリック
ActiveCell.Font.Italic = True
'下線(二重線)
ActiveCell.Font.Underline = xlUnderlineStyleDouble
'色変更
ActiveCell.Font.Color = RGB(0, 0, 255)
'フォントサイズ
ActiveCell.Font.Size = 9

▽With ~ End With を使って設定
With ActiveCell.Font
  'フォント名の変更
  .Name = "MS P明朝"
  '太字
  .Bold = True
  'イタリック
  .Italic = True
  '下線(二重線)
  .Underline = xlUnderlineStyleDouble
  '色変更
  .Color = RGB(0, 0, 255)
  'フォントサイズ
  .Font.Size = 9


 複数セルのフォントを変更する場合


他の処理数が少なく、1つのセルだけを変更するのであれば、そこまでレスポンスを気にする必要はないかもしれませんが、一連の処理の中で、ある固まりを一気に変更する場合は、変更セル数が多くなれば、その分処理に時間が掛かるため、出来る限りレスポンスを良く処理する必要があります。

以前「セルの幅を調整」でご紹介したように、i * j のデータを作成し、フォント変更処理を行ったところ、セル1つずつではなく、Rangeを用いて複数のセルを一気に処理した方がレスポンスが良かったです。

▽ i * j のデータ

また、複数フォント変更する場合は、With ~ End With を使う方が効率的でした。

▽ 事前準備 - 新規ブックを開く
'新規ブックを開く
Dim AppExcel As Excel.Application
Set AppExcel = New Excel.Application
AppExcel.Workbooks.Add

▽ 事前準備 - i * j のデータを準備
'i * j のデータを準備
For i = 1 To 50
  For j = 1 To 50
    AppExcel.Cells(i, j) = i * j
  Next j
Next i

▽ Rangeを用いて複数のセルを一気に処理
With AppExcel.Range(AppExcel.Cells(1, 1), AppExcel.Cells(50, 50)).Font
 .Name = "MS P明朝"
 .Bold = True
 .Italic = True
 .Underline = xlUnderlineStyleDouble
 .Color = RGB(0, 0, 255)
 .Font.Size = 9
End With

▽ (参考)セル1つずつ①
For i = 1 To 50
  For j = 1 To 50
    With AppExcel.Cells(i, j).Font
      .Name = "MS P明朝"
      .Bold = True
      .Italic = True
      .Underline = xlUnderlineStyleDouble
      .Color = RGB(0, 0, 255)
      .Font.Size = 9
    End With
  Next j
Next i

▽ (参考)セル1つずつ②
For i = 1 To 50
  For j = 1 To 50
    AppExcel.Cells(i, j).Font.Name = "MS P明朝"
    AppExcel.Cells(i, j).Font.Bold = True
    AppExcel.Cells(i, j).Font.Italic = True
    AppExcel.Cells(i, j).Font.Underline = xlUnderlineStyleDouble
    AppExcel.Cells(i, j).Font.Color = RGB(0, 0, 255)
    AppExcel.Cells(i, j).Font.Size = 9
  Next j
Next i

上記レスポンスの良かった順は「Rangeを用いた場合」 > 「(参考)セル1つずつ①」 > 「(参考)セル1つずつ②」です。

カテゴリー: VBa(Excelマクロ), システム開発 | コメントする

【新聞記事】受動喫煙(2017/06/19)



2017年6月19日の新聞記事より。

禁煙規制が なかなか進みませんね。
タバコ自体が自己責任で完結するなら、この様な話は出ないと思うのですが、

 ① タバコの煙に有毒物質を含み、自己より受動喫煙者の方が害が大きい

 ② 健康を害する事によって、医療負担が増加し、自己だけではなく国民全体で負担する

上記2点で十分規制する意味があると思うのです。

偶にタバコを吸ってる人が「税金を多く払ってる」と威張る人がいますが、ガンに罹り数百万~数千万の医療費が発生したら【税金を多く払ってる以上に医療費を国民が負担】している事になります。

残念ながら、ガンも含めて病気は誰にでも罹る可能性があり、喫煙をしない => 病気にならない訳ではな無く、科学的には喫煙をすると多少病気の罹患率が高くなるものです。でも、タバコを吸わない人にとってみれば、病気になる確率が高くなるのであればタバコの煙は避けたいと考えるのが当然ではないでしょうか。

世界各国が規制を進めているのに、社会保障費の負担で悩んでいる日本が、医療費増加の原因となっているところにメスを入れないのは何故なんだろう?規制を進められない議員は、飲食店の売り上げの方が、国民の健康や医療費を減らすより重要と考えているのか?!医療費が減るより、税金が減る方が問題と考えているのだろうか?

既に飲食店でも完全禁煙化を進めているお店が増えてきてます。喫煙者は男性が多く30%前後、女性は10%弱で、平均すると20%前後。1/5の食事中の喫煙者と喫煙可能な飲食店の売り上げを守るために規制をしない理由が分かりません。

カテゴリー: タバコ, 新聞記事 | コメントする

【新聞記事】米宇宙服、残り11着



2017年6月7日の新聞記事より。

アメリカで使っている宇宙服が、40年前に18着が作られた後、新しく作られず、現在は11着しか残っていないとか。

設計寿命は15年という事なので、既に25年前に切れたものを使い続けているという・・・。

220億円をかけて新型宇宙服の開発を進めても、未だ実用化に至っていない程、宇宙服の開発は難しいものなんですね。

素人考えですが、老朽化が激しいなら、当面、同じ設計で新しく作れば良いのでは?と思うのですが・・・。

カテゴリー: 新聞記事, 科学 | コメントする