派遣事務員の迷走

派遣事務員コロ子。会社の犬。顔出しNG。常に迷走している。

ノンプロ研大BT大会が凄すぎる

こんにちは。
派犬事務員のコロ子です。

ノンプロ研メンバーで順番にブログを投稿するアドベントカレンダーに参加!
この記事は「ノンプロ研 Advent Calendar 2019」の21日目!

f:id:SNegishi:20191221133510p:plain
つまみ食い中

先日、コロ子が所属するノンプロ研(ノンプログラマーの為のスキルアップ研究会)の忘年会に行ってきた。忘年会というと、普通は居酒屋とかにみんなで集まってワイワイするのを思い浮かべるかもしれないけど、ノンプロ研のはちょっと違う。
ノンプロ研の忘年会は全員発表必須のLT(Lightning Talks)を、飲みながらするBT(Beer Talks)大会なのだ。
ということは、参加するにはBTをすることが必須になる。
最近ノンプロ研は100人くらいに人数が増えた。
去年のBT大会はほとんど知っている人だったけど、今年は「初めまして」の人もいっぱいいるはずだ。
これは悩む。

参加したい
  ↓
BTしたくない
  ↓
でも、参加したい
  ↓
BT緊張するからヤダ
  ↓
でも、やっぱり参加したい


と一通り葛藤した結果、参加する事にした。
コロ子のダメなところは、結局参加するのにうだうだ悩み、決意するまでに時間がかかるところだ。時間効率の面から言って最悪に近い。

ノンプロ研の素晴らしいところ①

最近は職場の忘年会には参加していない。忘年会だけでなく、飲み会の類には参加していない。
なぜかというと待たされるから。
ちょっと待たされるくらい大したことないじゃん、コロ子はせっかちだな~、と思うかもしれないけど、本当に毎回待たされる。
開始の時間に行っても派遣の人だけで、社員は一人も来ていない。さんざん待たされた挙句、若手の幹事の社員が来たところで始まるが、ほとんどの社員が来ていないので、大皿料理でも、焼き肉でも、鍋でも、まだ来ていない人の分を取り分けておかなければいけない。
最初は「忙しくて大変だな」とか「仕事終わらなくて気の毒だな」とか思っていたけど、これが必ず毎回となると、いちいち面倒くさいし、仕事の計画性を疑がわざるを得ない。(偉い人との飲み会には遅刻しないで参加しているからやればできる。ナメられてるだけかも)
もちろん、予想外のアクシデント、緊急事態などで遅れたり、来れなかったりする事もあると思う。
でも、必ず毎回。
たかが飲み会だとしても、約束の時間も守れないようじゃビジネスパーソン失格じゃない?と思っちゃうくらい時間にルーズ。まぁ、最近の世の中こんなものかも知れないけど。

しかし、
ノンプロ研の忘年会はちゃんと時間通りに始まる。
みんなちゃんと時間通りに来る。
みんな忙しいビジネスパーソンなのに!

これって凄い事だと思う。
去年のBT大会でもこれに驚いたし感動した。

ノンプロ研の素晴らしいところ②

BT大会当日、会場に着くとBTの発表順を決める「ノンプロ君ステッカー」を1枚選ぶ。くじ引きの要領でステッカーの裏に番号が書いてある。
なんとコロ子1番を引いてしまった。
「えっ!!?この1って何?コロ子1番なの???」
「やだよー!1番にやりたくないよーーーー!!!」
「もう一回くじ引きやり直していい??」
誰だって1番はイヤだと思うけど、普通の大人は受け入れるところ、子犬のコロ子はめちゃめちゃゴネる。
あまりにも「やだよー!!」とゴネまくっていたら、主催の高橋さんが
「私のと交換してあげますよ。でも、本当は交換とかもナシですよ。」
と言ってステッカーを交換してくれた。
でもそこには「2」と書いてあった。
「えっ!!2番? 大差ないよ~!!」
「1番よりいいでしょ。それに先に終わらせれば、後はみんなのBT楽しめますよ」
と言われ1番より2番の方が断然マシなので、ありがたく交換して頂いた。

BT大会が始まり、高橋さんが1番に登壇したところ
「あれ?1番コロ子じゃないの?」
ゴネまくっていたからコロ子が1番を引いたのはみんな知っている。
すると、高橋さん「いえいえ、諸事情があって変更したんですよ。
私の話す内容はノンプロ研についてなので、最初に話した方が良いと思って、1番の人にお願いして替えてもらったんですよ。」

高橋さん、超やさしい!
コロ子がゴネたから変えてあげた、とか言わずに「BT大会の流れを重視した」みたいな理由をさらりと言えるのが凄い。こういう人が上司だったら安心して仕事できるし、部下は100%のパフォーマンスが出せるだろう。こんな小さな出来事から高橋さんの器のデカさにコロ子感動。常に小さな気遣いができる高橋さんかだらこそ、ノンプロ研メンバーは安心して100%のパフォーマンスを出せる。
コロ子、今後はもっと大人の犬になろうと決意。

ノンプロ研の素晴らしいところ③

みんなプレゼン上手すぎるし、面白過ぎる。
持ち時間は一人5分で、発表のスタイル、内容は自由。パワーポイントやGoogleスライドで思い思いに発表する。中には資料なしで5分喋り切る全く新しいスタイルのプレゼンもあった。次から次へとどんどんいろんなプレゼンが出てきて、中だるみもなければ、途中で飽きる事も全くない。
もちろんコロ子みたいに下手でも問題はない。
コロ子のどうしょうもない駄ネタでも、聞く方がちゃんと拾ってくれる。プレゼンを盛り上げる「聞く方の技術」も半端ない。

伝説のBT!?

トリを務めたUSG氏、凄かった!
最後だけあっていい感じに酔いで出来上がっていた。
突然ゲイバーの話を始めて、いきなりの脱線、大丈夫か?と思いきや、こんなコード書けるようになったんだぜ!とちゃんとプログラミングのプレゼン。最後にはお気に入りのカッコイイプロシージャー名を披露して、大大大大盛り上がりだった。
初めから最後まで涙出るくらい笑いっぱなしの超飛ばしたプレゼンだった。
これぞBT!!こんな凄いの見た事ない!!
順番はくじ引きだったのに、このプレゼンが最後に来るなんて奇跡!

楽し過ぎてあっと言う間だった。

BT大会を終えて

5分のプレゼンの資料作りに迷走し、BT大会数日前から情緒不安定、当日は仕事も手に付かず、ガチガチに緊張してのプレゼンだった。もちろんアドリブは利かないので話すこと全てをPowerPointのノート機能に書き込み、ひたすら画面を見ながらノートを棒読み。それでも何度もつっかかり、ひどい有様だった。
そんなBT大会が終わり、肩の荷が下り脱力。
疲れ切ったコロ子とは裏腹にノンプロ研では、ファミプロ、もくもく会、BT大会東京2日目、(2日前には大阪のBT大会もあった)などイベント盛り沢山で活気に溢れている。ノンプロ研のメンバーはタフ過ぎる!

BT大会の他に、この「ノンプロ研 Advent Calendar 2019」もプレッシャーだったので、これが終わったら、「もぬけの殻」状態になりそう・・・。

来年はこれらをプレッシャーと感じないくらい、いろいろこなせるようになりたい。

f:id:SNegishi:20191221160739p:plain
冷蔵庫じゃなくてパソコンに貼ったよ

パーフェクトExcel VBA 購入

こんにちは。
派犬事務員のコロ子です。

11月25日発売のパーフェクトExcel VBA(高橋宣成さん著)をついに購入。
11月25日は平日だったり、仕事が急に忙しくなったりと仕事帰りに本屋さんに行くことができずに、世間の「買った~!」からちょっと乗り遅れて購入した。

f:id:SNegishi:20191201132411p:plain
3,280円+税 大きな買い物に満足

地元で一番大きいと思われる本屋さんに行くと、Excelのコーナーに1冊だけ置いてあった。ラス1なのか、もともと1冊なのか分からないけど、「最後の1冊買っちゃって悪いなぁ、でもあって良かった!」とコロ子が頂いた。

すっかり気をよくして、ちょっと別の場所あるに本屋さんも見てみようかという気になる。でも、「あったところでどうするんだろう、もう一冊は買えないよなぁ」とぼんやり考える。
世間には1冊は家用、もう1冊は会社用、さらにKindleで持ち歩き用と複数冊購入する強者もいるらしい。
いや~、コロ子にはそんなお金ないから無理、無理。
いや、ちょっと待てよ、もう1冊買って高橋さんにサイン貰って転売って方法もある。
いやいや、いくら貧乏でもさすがにそれはないよ~、自分の分だけで満足しよう。

勝手に書評してみる

全575ページ、800g、ボリュームからして、これを全部マスターできればパーフェクトになれることは間違いなさそうだ。
コロ子もVBAの本は何冊か持っているけど、どちらかというと「技」的な方法が載っているもので、「こういう事やりたいんだけど何かいい方法ないかなー」、というときにパラパラめくる感じで使っている。
そうなるとネットで検索した方が速いので、結局ネット検索で見つけた物をコピペして使っている。意味が分からなくても動けばいい。多分、ほとんどのノンプロVBAerはこんな感じなのではないだろうか。
そんなVBAerにこの「パーフェクトExcel VBA」はうってつけだ。
まず、最初から飛ばさずに順番に読むように促されている。
VBAという物を理解するためには、構造と体系を理解しなくてはいけない。
最初から読み進めることにより、いつも意識しないでなんとなく書いているコードの体系が分かるようになる。
またPropertyプロシージャや、各種モジュールの役割、ライブラリなど、知ってるようで知らない事が詳しく説明されている。
もちろん、今まで見たことも聞いた事もない、全く初めての物に出会うことも多々ある。
ネット検索は知らなければできないので、この1冊に一通り目を通せば、「本」+「ネット」の鬼に金棒になるのではないかと思う。


よしよし、偉そうな事が書けたぞ。
いかにも「パーフェクトExcel VBA」読破したような口ぶり。

すみません、まだ全部読めていません・・・(汗)。
発売前に全部読み終わって自慢しまくるつもりだったのに。
間に合わなかったので購入しました・・・。

でも、持っていて絶対に損はない1冊だと思う。
内容はかなりヘビーで濃いめ、サクサク読めないから覚悟して挑んで欲しい。

ちなみに
こんな分厚い本読めるかー!という人は
高橋さんが講師を務める
ノンプロ研中級講座【VBAコース】で習ってしまおう。
現在第1回目だけど、きっと第2回目もあるハズ。
来年以降のいつも隣にITのお仕事 | 毎日の業務が楽チンに!は要チェック!
(現在コロ子がTAをしているよ!)

VBA ExcelからWordを立ち上げてWordが前面に来る方法

こんにちは。
派犬事務員のコロ子です。

タカハシノリアキさん著
「パーフェクトExcelVBA」が11月25日に発売
される。

なんと、ノンプロ研メンバーは発売前の草稿の状態から読めるという超お得な特権がある。
にもかかわらず「本が発売されたら読めばいいや~、PDFより紙の方が読み安いし」となかなか読み始めなかった。
ノンプロ研中級講座【VBAコース】のTAをすることになって、10月頃から慌てて読み始めた。(遅すぎ)

内容はかなり濃いめで、これからVBAを始める人よりある程度かじっている人向け。コロ子のようにずっと独学で自分勝手に解釈しながら勘違いしまくってる人にはすごく為になる。
しかしヘビー過ぎるところもあってなかなか進まない。
先日、VBA講座を受講している方から「これはパーフェクトExcelVBAの〇〇ページに書いてある事ですか?」とまだ読んでないところを質問され、おかげでスピードアップした。
あともうちょっとだ。
発売前に全部読んで、世間にマウントを取るのだ!

・・理想のマウント会話・・
「え?パーフェクトExcelVBA?それならもう読んだよ。すごくいいよね~」
(ちっちゃいヤツ(犬)だなぁ。)


そんな訳でパーフェクトExcelVBAを読んでいて、
「やり方わからないからまぁいいや」とずーっとほったらかしにしていた所が解決したので、メモっておこう。

アプリケーションを前面にする

この記事のタイトルを
VBA ExcelからWordを立ち上げてWordが前面に来る方法」
としたけど、要は「アプリケーションを前面にする」ということで、この「アプリケーションを前面にする」というワードが思いつかなくて、調べようにも検索がヒットせずに敗北した。

下記コードでExcelからWord「テスト.docx」を立ち上げる

Sub OpenWord()

Dim wd As Object
Dim wdoc As Object
 
Set wd = CreateObject("Word.Application")
wd.Visible = True
 
'テスト.docxを開く
Set wdoc = wd.Documents.Open("D:\ブログ\テスト.docx")

   ↓
f:id:SNegishi:20191110181421p:plain

パソコン下のタスクバーにWordのアイコンが表示される。
でもExcelが前面のまま。


AppActivateで前面にできる

【構文】AppActivate title、[ wait ]

title 必須。 アクティブ化するアプリケーション ウィンドウのタイトル バーに表示されるタイトルを指定する 文字列型 (String) の式です。 Shell 関数から返されるタスク ID を title の代わりに使用してアプリケーションをアクティブ化することもできます。
(Office デベロッパーセンターより)


Shellで立ち上げたのではないのでIDはない。
「タイトル バーに表示されるタイトル」
っていったいどこだろう・・・?


いろいろ試した結果

f:id:SNegishi:20191110190403p:plain

ワードの上に表示されている名前だった。

ちなみにコロ子はWord2016を使っているけど、会社のパソコンは2010で表示が違う。

f:id:SNegishi:20191110190432p:plain

バージョンによって表示が違うので注意。

Word2016:ファイル名 - Word
Word2010:拡張子付きファイル名 - Microsoft Word

この先、バージョンによって表示が変わる可能性があるので、念のためエラー処理を入れておこう。

Sub OpenWord()

Dim wd As Object
Dim wdoc As Object
 
Set wd = CreateObject("Word.Application")
wd.Visible = True
 
'テスト.docxを開く
Set wdoc = wd.Documents.Open("D:\ブログ\テスト.docx")

'Wordを前面に
On Error Resume Next
Call AppActivate("テスト - Word")

ちなみに、
wd.Visible = Trueをwd.Visible = Falseにしてみたら
Wordファイルは立ち上がっているのに「どこにも表示されていない」という困った状況になる。閉じ方が面倒なので注意。

働き方改革 定時で帰って負のスパイラル

こんにちは。
派犬事務員のコロ子です。


f:id:SNegishi:20191106214428p:plain
もう1つ食べちゃおう

働き方改革なのか、最近は担当する仕事が減って定時に帰っている。

以前は毎日夜遅くまで残業していて、残業代込みのお給料を見込んでの生活だった。
定時で帰ると、ただでさえ少ないお給料が更に少なくなった。
残業代を期待するのは良くないと分かってはいるけど、正直言って残業よりビンボーの方がツライ。

負のスパイラル

さらに生活も負のスパイラルにどっぷりつかってる。

定時に帰る(お腹空いた&眠い)
 ↓
駅前のスーパーに吸い込まれるように入り、お菓子を買う
 ↓
犬小屋に着く
 ↓
おやつを食べる
 ↓
眠くなって寝る
 ↓
目が覚めてからごはんの支度&ごはん&お風呂
 ↓
遅い時間から勉強(パソコンで遊ぶ)
 ↓
朝(寝不足で眠い)
 ↓
仕事(寝不足で眠い)
 ↓
繰り返す


ここでポイントなのは、全く自分の意志とは関係なく
「スーパーに吸い込まれるように入る」というところ。
ドッグフードは週末にまとめ買いなので、スーパーに行く理由はない。
なのにいつもスーパーの前の看板には
「アイス3割引き」とか
「〇〇チョコレート98円」とか
「ポイント5倍」などの
魔の文言が書いてある。
そして、スーパーの前を通らずに犬小屋に帰る道はない。

こんな感じで
・常に眠い
・お菓子買って無駄遣い
・お菓子食べて太った
・勉強はちっともはかどらない

せっかく定時に帰っているのに台無し。

ちなみに休みの日は

昼頃起きる
 ↓
日中はいろいろ
 ↓
夜遅くまで起きている
(昼頃まで寝てるから夜なかなか眠くならない)

これまた負のスパイラルにどっぷり浸かっている。

はぁ~。ダメ犬。

なんとかしなくては。

列番号をEnumにするときのモヤモヤ

こんにちは。
派犬事務員のコロ子です。


旅ブログを始めて、「二頭追うものは一頭も得ず」状態になっている・・・。
koroko-resort.hatenablog.com

列番号をEnumにするときのモヤモヤ

例えばこんな表のとき
f:id:SNegishi:20191022120326p:plain

列番号を列挙型変数のEnumにする

Enum Col
    品名 = 1
    縦cm
    横cm
    高さcm
    縦in
    横in
    高さin
End Enum

要素名は表の項目名と同じにすれば選ぶ時に迷わない。
なんとなくカッコイイから要素名も英字にしたいけど、選ぶ時にどれだっけ?ってなっちゃうからなるべく表と同じ表記にする。(今回は単位を後ろに付けたけど。)
でも、Enum変数名は英字にした方が、キーボードの入力を和文に切り替えなくていいからラク

Enum変数を使うとインテリセンスが使えるから楽々コーディングできる。
でも、
f:id:SNegishi:20191022122159p:plain

順番違くない?
宣言した順番でインテリセンス表示してくれればいいのに!

仕方ないので、並び順を考慮して要素名の先頭にアルファベットをAから順に入れてみた。本当は数字にしたいけど、先頭文字に数字は使えないし、列番号と先頭文字が合っているから分かりやすくていいよね。

Enum Col
    A品名 = 1
    B縦cm
    C横cm
    D高さcm
    E縦in
    F横in
    G高さin
End Enum


f:id:SNegishi:20191022123207p:plain
よし!
希望の順番に表示された。


でも、途中で表が変更されることってよくあるよね。
体積の列が途中と最後に追加された場合。
f:id:SNegishi:20191022165755p:plain

ショックだわ~。
せっかく列番号と要素名の先頭文字が同じだったのに。
ここで要素名の先頭文字を振り直したら、コード中の記載も変更しなくちゃいけないから、それは避けたい。

列番号と要素名の先頭文字は無関係、ってことにしてE縦inの前にくるように「体積cm3」をE1体積cm3にして追加。
「体積in3」は最終列だから、I体積in3として列番号と先頭文字が同じになるように何気なく修正。

'列番号と先頭文字は無関係です。
Enum Col
    A品名 = 1
    B縦cm
    C横cm
    D高さcm
    E1体積cm3
    E縦in
    F横in
    G高さin
    I体積in3
End Enum

コロ子一人だから、自分ルール勝手につけてるけど、普通はどうするものなのかな?
最近は可読性を気にしているんだけど、こういうのは大丈夫?
「列番号と先頭文字は無関係です。」ってコメント入れればいい?

パソコンを持って出かけてみた。

こんにちは。
派犬事務員のコロ子です。

ちょっと遅めの夏休みを取って旅行に行ってきた。
いつも旅行のテーマは非日常。パソコンどころか、スマホもカメラ機能以外は使ったことなかった。ITオンチだったから、海外でWifiとかできないし、必要とも思わなかった。
でも今回は脱ITオンチを目指し、ITは日常とか非日常とかではなく、ライフワークにすべく旅行にパソコンを持っ行くことに。
かっこいい事言ってみたけど、実はノンプロ研のVBA講座のTA(ティーチングアシスタント)をやらせてもらう事になったので、事前課題など、どんな内容か見ておかないと不安で不安で仕方ないので、パソコンを持って行くことにした。

*注意
コロ子がアシスタントなんてノンプロ研の講座、大丈夫?なんて心配無用。
講師は高橋さん(@ntakahashi0505)、もう一人のTAはセラエノ(@celaeno4)さん。めっちゃ価値あり充実の講座。
コロ子はキャラ採用。

パソコンを持って飛行機に乗るには?

飛行機ってけっこう揺れる時あるよね。
大丈夫かな、心配だな、振動で壊れたりしないかな。

コロ子のパソコンは15.6インチのノートパソコン。
持ち運ぶにはちょっと大きくて重い。

スーツケースに入れたいところだけど、スーツケースってよく投げられたり、滑り台みたいな所を滑ったりしてる。ただでさえ心配なのにそれはちょっと無理なので手荷物にして機内持ち込みにすることに。
*ノートパソコンにはリチウム電池が使われているので預け荷物NGです。

いつもはリュックにそのまま入れて、絶対に背中から降ろさないけど、飛行機に乗るにはそうもいかない。
パソコンケースを買わなくちゃ。でもクッション性が高そうなケースだと、リュックに入らないからソフトな素材でパソコンにフィットするタイプを購入した。


フィット感はいいけど、入れにくい。
入り口がパソコンより小さくない?


ギューッと引っ張ってもなかなか広がらない。


なかなか入らない。
飛行機の振動より、入れる為にグルグル回したり、上にしたり下にしたり、この振動で壊れるんじゃないかと思うぐらい激しく振り回わし、なんとか入れる事に成功。

機内では最初は足元に置こうかと思っていたけど、踏みつけそうで危ないので、上の棚に入れてみた。他の人の荷物で固定して、大きな荷物がリュックの上に載せられないように見張っていい感じに固定できた。

電源コードはスーツケースに入れて大丈夫だった。

結論

全然問題なし!

で、旅先でしっかり勉強できたのかって?
バーでWifiが繋がるから毎日バーに行ったけど、お酒飲んじゃってヘロヘロ~。
でも海外のバーでパソコンなんて絵的にカッコイイからOK!

サブブログ始めました。

最近ブログの素晴らしさも分かってきたし、せっかく旅行に行ったので旅行記書いてみようかな、と思ったところ、はてなブログでサブブログが作れる事を発見!
サブブログ始めました。(なぜかこっちは顔出しOK)

koroko-resort.hatenablog.com

MROUND関数があった・・・。

こんにちは。
派犬事務員のコロ子です。

f:id:SNegishi:20190921223837p:plain

四捨五入以外で丸めたい

四捨五入でなく、0、5、10、15のように5単位で数字を丸めたいと思い、VBAで関数を作成した。5に限らず、好きな単位で丸めをできるように作成した。
そしたらMROUND関数ってのがあった。

ショック!!

そんな関数あったなんて知らなかったー!
みんな知ってた?
えっ!?常識?

せっかく作成したからコード書いておこう・・・。


【考え方】
①例えば、5つづに丸めたい場合
5の半分の2.5未満が切り捨て、2.5以上が繰り上げになる。
1→0
2.4→0
2.5→5
3→5
7.4→5
7.5→10
8→10
のようになる。

②丸めたい数字を5で割った余りが2.5未満なら、5で割った商に5を掛ける。
【21の場合】
21÷5=4 余り1
なので
4×5=20

③丸めたい数字を5で割った余りが2.5以上なら5で割った商に5を掛けて、5を足す。
【23の場合】
23÷5=4 余り3
なので
4×5+5=25

④コード

Function RoundOther(val As Currency, num As Currency) As Currency

If val - Int(val / num) * num < num / 2 Then

    RoundOther = Int(val / num) * num
 
Else

    RoundOther = Int(val / num) * num + num

End If

End Function


ちなみに、
余りを求める「Mod」関数は整数のみでしか使えないので、少数でも対応するために
val Mod num

val - Int(val / num) * num
とした。

また、商を求める演算子「¥」も整数のみなので
val ¥ num

Int(val / num)
とした。

丸められる数値がマイナスのときは?

MROUND関数は丸められる数値がマイナスの数値の場合は、丸める単位もマイナスにしないといけない。
数学的にはそれが正しいのだろうけど、素人の感覚的には記号を無視して絶対値で入力したい。
なので、コロ子の関数では丸められる数値がプラスでもマイナスでも、丸める単位を絶対値で入力してOK。
マイナス対応してないだけだけど、せっかく自作なんだから、自分の感覚で分かりやすい方がいいじゃん!!