絞り込み条件を変更する
検索条件を絞り込む

すべてのカテゴリ

31 件中 1 - 31 件表示
カバー画像

Excel・VBA講師をはじめました|初心者さん専門でサポートします

こんにちは。Excel・VBA講師のごんたです。 このたび、初心者さん専門のExcel・VBAレッスンをスタートしました。 私はこれまで、 - Excel実務歴28年 - VBA指導歴20年 として、企業の現場や研修で多くの方をサポートしてきました。 その中で強く感じてきたのが、 「初心者さんが安心して学べる場所が少ない」 ということです。 🟦 初心者さんの“つまずき”は、ほんの小さなところにある 「VBAが難しく感じる」「職場で急に任されて不安」 そんな声をたくさん聞いてきました。 でも実は、 最初の“感動ポイント”をひとつ体験すると、VBAは一気に楽しくなる。 私はその瞬間を何度も経験し、見てきました。 🟩 そこで、初心者さんが“楽しく学べるシリーズ”を始めます これからココナラブログでは、 【VBA初心者が感動する瞬間】シリーズ として、初心者さんが「おおっ!」と感じるポイントをやさしく紹介していきます。 たとえば── 【① Cells(1, "B") の衝撃】 「セルをコードで指定できる」 この瞬間、初心者さんの目が輝きます。 【② Offsetで自由に動ける魔法】 「上下左右に動けるって何これ…!」 と驚かれる方が多いです。 【③ 最終行を一瞬で取る方法】 実務で必ず役立つ“最初の壁突破”。 …こんな感じで、 初心者さんが“楽しい!”と思える瞬間を1つずつ紹介していきます。 🟦 レッスンでは“やさしく・ゆっくり・丁寧に” 私のレッスンは、 - マンツーマン - 初心者専門 - 実務に直結 - 質問しやすい雰囲気 を大切にしています。 「こんなこと聞いていいのかな…」
0
カバー画像

【週末コラム⑦】我々は、コンピューターを使っているのか? それとも、コンピューターに使われているのか?

こんにちは。  ごんた@VBAレッスンです。週末なので、今日は少しだけ“働き方の本質”に触れる話をします。 ■ 紙がデータに変わり、データがありふれているのに人は減り続けているここ数年で、紙の書類はどんどんデータ化されました。- 紙の申請 → システム入力  - 紙の帳票 → Excel  - 紙の管理表 → データベース  便利になったように見えて、  実はその裏で 人は減り続けている。そして、会社が生き残るために求められるのはただ一つ。> 効率化。他社に負けないために、  少ない人数で、より多くの仕事をこなす必要がある。■ しかし効率化には“もう一つの影”がある効率化を進めると、必ず起きる現象があります。それは——> 出来る人のところに仕事が集まってしまう。- Excelが速い人  - データ処理が得意な人  こういう人に、  どんどん仕事が集中していく。効率化のはずが、  一部の人だけが疲弊する構図 が生まれる。これは、どの会社でも起きている“縮図”です。■ 「出来る人」とは誰のことなのか?ここで一つ問いかけたい。> 出来る人とは、データを他の人より手作業で大量に処理できる人でしょうか。> それとも、自動化を推進して、より多くのデータを処理できる仕組みを作る人でしょうか。私は、後者でありたい。前者は、  コンピューターに使われている人と言っても過言ではありません。- 手が速い  - 慣れている  - 量をこなせる  これは一見“出来る人”に見えるけれど、  実は 人間がツールの都合に合わせて動いている状態です。■ VBAは「手が速い人」を超える力を
0
カバー画像

【週末コラム⑥】改善の種って至るところにある!

こんにちは。  ごんた@VBAレッスンです。ここ数日、ブログの投稿ができていませんでした。  本業が立て込んでいたのですが、その理由は——新しく作ったVBAシステムのトライ運用をしていたからです。■ 実際に動かしてみると、想定外のエラーは必ず出る  今日のトライ運用では、やっぱり 思いがけないエラーがいくつか出ました。- 想定外のデータパターン  - 入力の揺れ  - 条件分岐の漏れ  - 操作手順の違い  こういうのは、  実際に現場で動かしてみないと絶対に気づけない部分。でも、これはVBAシステム開発では“正常なプロセス”です。■ それでも大きなトラブルなく動いた  細かい修正は必要でしたが、> 概ね大きなトラブルもなく、本稼働に移行できそうです。VBAは  - 手順をそのまま書ける  - 修正がしやすい  - 現場の声をすぐ反映できる  だから、  現場で育てていくシステムとして本当に相性が良い。■ 1人あたり1日5分短縮でも、30人なら年間609時間の削減  今回のシステムは、  最初は 30人くらいの作業者 に使ってもらう予定です。1人あたりの短縮時間は 1日5分 と控えめに見積もっても、- 5分 × 年間235日 = 1,175分(約19.6時間)/年 - 30人なら 588時間/年 の削減これは 約73.5日分の労働時間 に相当します。数字にすると、改善の大きさが一気に見えてきます。■ 来年度は500人規模で使ってもらえるかもしれない  そして今回の運用が上手くいけば——> 来年度は500人くらいに使ってもらえるかもしれない。そうなると、削減効果はさら
0
カバー画像

【VBAで感動する瞬間⑯】引数は“全部書く必要はない”。ポイントだけ押さえればシンプルになる

こんにちは。  ごんた@VBAレッスンです。先日のエラーのコラムの続きは、ちょっと待ってて下さい。ちょっと横道にズレて・・・今日は、初心者さんが必ずつまずく 「引数」 についてお話しします。 ■ 初心者の頃は、引数まわりが本当にカオスはじめの頃って、分からないから- ネットで調べてコピペ  - マクロ記録で全部の引数がズラッと並ぶ  - 逆に省略されてる引数もある  - 名前付き引数と順番指定が混ざる  - カンマだけ残ってる  こんな状態になりがちです。あとから見返すと  「何これ…?」となる。  可読性が壊滅的。でも、これは初心者さん全員が通る道です。大丈夫です。私も経験済み。■ 引数は「設定項目」。全部書く必要はない引数は、命令に渡す“設定項目”のようなもの。そして実は、> 必須だけ書けば動く。  > 必要なところだけ追加すればいい。これが本質です。■ 例:引数が長すぎて怖い代表「Workbooks.Open」マクロ記録すると、こんな呪文が出てきます。Workbooks.Open( _    Filename:="C:\Test\sample.xlsx", _    UpdateLinks:=0, _    ReadOnly:=False, _    Format:=5, _    Password:="", _    WriteResPassword:="", _    IgnoreReadOnlyRecommended:=False, _    Origin:=xlWindows, _    Delimiter:="", _    Editable:=Fa
0
カバー画像

【週末コラム③】VBAの近道は、悩まず聞くこと。

こんばんは。ごんた@VBAレッスン です。今日は、VBAを最速で上達するための“考え方”についてお話しします。  技術の話ではなく、私自身が実務の中で大切にしてきたことです。■ 悩んでいたことが、誰かの一言で一瞬で解決することがあるVBAを学んでいると、  1人で1時間悩んでいたことが、  誰かに聞いた瞬間に スッとほどけることがあります。「なんであんなに悩んでたんだろう…」  と拍子抜けするくらい、あっさり解決する。これ、実務では本当に“あるある”です。■ 行き詰まったら、いったん寝かせるのも立派なスキルもう一つの“あるある”がこれ。行き詰まって「今日はここまで」と区切って、  次の日に見直すと、何事もなかったかのように解決する。脳が一晩で情報を整理してくれるので、  昨日は見えなかったものが急に見えるようになるんです。■ でも、聞いたことを「鵜呑み」にしないことここが今日の一番大事なポイント。人に聞くのは近道だけど、  聞いたことをそのまま信じて終わりにしない。- 自分で動かしてみる  - 自分のデータで試してみる  - 自分の手で書いてみる  - 自分の頭で「なるほど」と腹落ちさせる  この“腹落ち”のプロセスが、上達の核心です。■ 腹落ちすると、複数のアプローチが見えるようになる腹落ちするまで使い込むと、  同じ処理でも 複数のアプローチ が見えるようになります。- InStr で取る  - Split で取る  - Replace で整形してから取る  - 正規表現で取る  - そもそも別のロジックにする  こういう“選択肢”が増えると、  その時のデータや状況に合わ
0
カバー画像

【VBAで感動する瞬間③】セルは Select しなくても大丈夫!

こんにちは。  ごんた@VBAレッスン です。お読みいただき本当にありがとうございます。VBAを始めたばかりの頃、  私はどんな操作でも必ずRange("A1").SelectSelection.Value = "OK"こんなふうに「選択してから操作」していました。Excelの普段の操作が  “選択してから入力する”  だから、VBAでも同じだと思い込んでいたんです。でも実は……  VBAでは Select や Activate はほとんど不要!むしろ、使わない方が正しい書き方なんです。■ Select を使わないとどうなるの?例えば、さっきのコードはRange("A1").Value = "OK"これだけで完了します。・選択しない  ・アクティブにしない  ・直接セルに命令する  これがVBAの基本の考え方です。■ なぜ Select は不要なの?VBAは  “選択しなくても操作できる仕組み”  になっています。Excelの画面操作とは違い、  VBAは セルそのものに直接命令できる からです。だから、・Select  ・Activate  ・Selection  これらは基本的に必要ありません。■ Select を使わないメリット・コードが短くなる  ・処理が速くなる  ・エラーが減る  ・読みやすくなる  ・実務で使えるコードになる  初心者のうちに  「Select はいらない」  と知るだけで、VBAの世界が一気に広がります。■ 初心者の頃に知りたかったポイント私は最初、  「選択しないと動かない」と思い込んでいました。でも、  ”VBAはセルを直接操作できる”と理解
0
カバー画像

【VBAで感動する瞬間㉒】何でも変数にすればよいというわけではない

こんにちは。  ごんた@VBAレッスンです。今日は、“ある勘違い”についてお話しします。 ■ 変数は便利。でも「何でも変数」は逆効果VBAを覚え始めると、  「とりあえず全部変数にしよう!」  という気持ちになる時期があります。- セルの値  - 範囲  - 行番号  - 列番号  - シート名  全部変数にすれば“賢く書けている気がする”んですよね。でも実務では、これは逆効果になることが多い。 ■ 昨日まさにあった実例昨日、こんなことがありました。> 1回しか使わない値なのに、わざわざ変数にしたせいで  > 逆にコードが読みにくくなった。変数名を追いかける必要が出てきて、  「これ何だっけ?」と毎回戻る羽目に。正直、  1行で完結するなら、そのまま書いた方が読みやすいというケースは普通にあります。■ 変数は「便利」ではなく「責任」でもある変数を増やすということは、  “管理すべき情報を増やす”ということ。- どこで使っている?  - 値は変わる?  - いつ代入した?  - どこで参照してる?  こういう“追跡コスト”が必ず発生します。だからこそ、  変数は必要な分だけでいい。■ 変数にすべきもの、しなくていいもの変数にすべきもの- 変わる可能性がある値  - 何度も使う値  - 可読性が上がる場合  - ユーザー入力や日付などの動的な情報変数にしなくていいもの- 固定のセル  - 固定のシート  - 固定の文字列  - 1回しか使わない値■ 今日のまとめ  > 変数は何でも入れれば良いわけではない。  > 1回しか使わないなら、変数にせず1行で書いた
0
カバー画像

【週末コラム⑧】AIにHTMLを書かせてみた話

こんにちは。  ごんた@VBAレッスンです。すみません。最近、なかなか投稿できていませんでした。  今日は、VBAとは少し離れた“仕事中に試したこと”をお話しします。■ 職場のHPが古いので、試しにAIで作ってみた実は最近、職場のホームページを見ていて思ったんです。> 「これ、かなり古いな……」そしてもう一つ。> 「更新するにも、知識がないと触れないから、   結局メンテナンスされずに放置されてるんだよな」そこでふと、試してみたくなりました。> AIにHTMLを書かせたらどうなるんだろう?必要な構成だけ伝えてみたところ——> 普通にできました。しかも、こちらの意図にかなり近い形で。正直、驚きました。■ “専門知識がないとできない” 時代ではなくなった昔は、HTMLを書くには- タグを覚えて  - CSSを調べて  - レイアウトを試して  - 何度も修正して  という手間が必要でした。でも今は違います。> 目的を伝えれば、AIが形にしてくれる。これは、VBAの世界でも同じ流れです。■ でも、AI任せでいいわけではないAIは便利ですが、  そのまま鵜呑みにすると危険です。- 余計なコードが混ざる  - 必要以上に複雑になる  - 実務に合わない構造になる  こういうことは普通にあります。だからこそ大事なのは、> 「本当にこれで合ってる?」という疑いの目。AIの回答を“判断できる力”が必要です。■ AI × 基礎理解 が最強AIは理解を加速してくれます。  でも、AIだけでは身につかないものがあります。それが 基礎の理解。- 何が正しいのか  -
0
カバー画像

【VBAで感動する瞬間㉑】VBAの学び方が変わる

 こんにちは。  ごんた@VBAレッスンです。最近、VBA × AI のセミナーに参加してきました。  そこで強く感じたのは——> VBAの学び方は、もう昔とはまったく違う。うすうす気づいてはいましたが、今回のセミナーで確信に変わりました。■ 昔の学び方は「調べる」しかなかった私がVBAを学び始めた頃、  先生(Excel日本一のエキスパート)にこう言われました。> 「分からないことがあれば、調べる癖をつけなさい」その方法は主に2つ。- マクロ記録でコードを観察する  - オブジェクトのプロパティを調べる  特にプロパティは MS公式ドキュメント を読むのですが、  情報が細かすぎて逆に分からない。  慣れるまで本当に苦労しました。■ でも最近のセミナーでは、マクロ記録の話が一切出なかった今回のセミナーで驚いたのは、> マクロ記録も、プロパティの話も一切出なかったこと。代わりに出てきたのはただ一つ。> AIを使って調べること。そりゃそうですよね。  実際、私自身も最近は- マクロ記録で調べる  - プロパティを公式で読む  こういった作業はほとんどしていません。今はほぼすべて AIによる検索と理解補助 です。■ でも、そこで必要なのは「本当に合ってる?」という疑いの目AIは便利ですが、万能ではありません。- 余計なコードが混ざる  - 必要以上に複雑になる  - 実務に合わない書き方になる  こういうことは普通にあります。だからこそ大事なのは、> 「本当にこれって合ってる?」と疑う目を持つこと。AIの答えを鵜呑みにしない力が必要です。■ AIだけで
0
カバー画像

【VBAで感動する瞬間⑳】それって、わざわざVBAで作る必要ある?

こんにちは。  ごんた@VBAレッスンです。今日は、VBAを学び始めた方が  必ず一度は通る“やりがちな落とし穴”についてお話しします。それは——> 「分かってくると、全部VBAで作りたくなってしまう」ということ。■ 全部VBAで作りたくなる気持ちは、すごく分かるVBAが分かってくると、- 罫線もVBAで書ける  - フォントもVBAで設定できる  - 色もVBAで変えられる  - レイアウトもVBAで作れる  「全部コードで作れるじゃん!」  という気持ちになる。これは 知識を付けるという意味では正しい。  実際、私も昔は全部VBAで作っていました。でも——実務で必要なのは“全部VBAで作る力”ではなく、  柔軟に対応できる仕組み”なんです。■ 決まった様式や書式を“VBAでゼロから作る”必要はない例えば、会社で使う様式があるとします。- タイトルの位置  - 罫線  - 色  - フォント  - 注意書き  - レイアウト  これらを まっさらなシートからVBAで作ることはできます。でも、正直に言うと——わざわざVBAで全部作る必要はありません。■ ちょっと前に話した「色」の話と同じ以前のブログで、  「色は最初から決めておけば迷わない」という話をしました。あれと同じです。> 様式や書式も、最初からテンプレートとして用意しておけば良い。これだけで、  毎回VBAで書式を作る必要がなくなります。■ テンプレートがあると“急な変更”にも強い実務では突然こう言われます。- 「この罫線、太くして」  - 「フォント変えて」  - 「列幅広げて」  - 「注意書き追加して
0
カバー画像

【VBAで感動する瞬間⑲】SelectとActiveCell

こんにちは。  ごんた@VBAレッスンです。今日は、VBAでよく出てくる  「Select」 と 「ActiveCell」 の違いについてお話しします。この2つ、見た目が似ているので  初心者さんは同じように感じてしまいます。でも、実務でVBAを書くときには  この違いを理解しているかどうかで、コードの安定性が大きく変わります。■ Select は「選択した範囲」そのものまずは Select の本質から。Select は“選択された範囲を作る動作”であり、  その範囲そのものを表すイメージ。Excelでマウスでドラッグして範囲を選ぶのと同じ。```Range("A1:C3").Select```これは  A1〜C3 の範囲を選択状態にするという意味。つまり、Select は- “枠”を作る  - “範囲”を決める  - “選択状態”を作る  というイメージ。■ ActiveCell は「その範囲の中にある現在位置」そして、選択された範囲の中には  必ず1つだけ ActiveCell が存在します。```Range("A1:C3").SelectMsgBox ActiveCell.Address```この場合、ActiveCell は A1。つまり、Select で作られた“選択範囲”の中に  ActiveCell(今アクティブなセル)が存在する。この関係が分かると、  Active と Select の違いが一気に腑に落ちます。 ■ 図で表すとこういうイメージ```[ A1 ] B1 C1  A2 B2 C2  A3 B3 C3```- Select → A1〜C
0
カバー画像

【VBAで感動する瞬間⑱】インデントって必要??

こんにちは。  ごんた@VBAレッスンです。今日は、VBAを書くうえでとても大事な  「インデント」についてお話しします。■ インデントがないコードは“迷子”になりやすいまずは、インデントがないコードを見てみます。```If x > 0 ThenIf y > 0 ThenMsgBox "OK"ElseMsgBox "NG"End IfElseMsgBox "xが0以下です"End If```一応動きます。  でも、どの処理がどこに属しているのか、  一瞬で判断できない はずです。- If がどこで終わるのか  - Else がどの If に対応しているのか  - ネストの深さが分からない  読み返すだけで疲れてしまいます。■ インデントがあると“構造が見える”次に、インデントを付けたコードです。```If x > 0 Then    If y > 0 Then        MsgBox "OK"    Else        MsgBox "NG"    End IfElse    MsgBox "xが0以下です"End If```どうでしょう。- どの If の中にいるのか  - Else がどこに対応しているのか  - 処理の流れがどうなっているのか  一瞬で理解できます。これがインデントの力です。 ■ インデントは“正しさ”ではなく“読みやすさ”のためにあるVBAは、インデントがなくても動きます。  でも、実務では 動けばいいわけじゃない。特に今回のように  30人 → 来年度500人規模で使われるシステムなら、  読みやすさは“保守性そのもの”
0
カバー画像

【VBAで感動する瞬間⑭】 ループは便利だけど、書き方を間違えると無限ループに…!

こんにちは。  ごんた@VBAレッスン です。今日は、VBAで誰もが一度は経験する  「止まらないループ」=無限ループについてお話しします。For / For Each / Do While はとても便利ですが、  条件や書き方を少し間違えるだけで、Excel が固まって再起動が必要になる“無限ループ”が起きることがあります。でも安心してください。  ループの仕組みと安全な使い方を知っておけば、怖がる必要はありません。■ 1. ループが便利な理由ループは、Excel の繰り返し作業を一瞬で自動化できる強力な仕組みです。- 同じ作業を何十回・何百回でも正確に繰り返せる  - 条件に応じて必要な処理だけ実行できる  - データ量が増えてもコードはそのままでOK  - 行・セル・シート・ファイルなど、あらゆる対象に使える  「繰り返し作業=ループで自動化」が基本です。■ 2. でも、書き方を間違えると無限ループに…● For の落とし穴:カウンタをいじると止まらない```vbFor i = 1 To 10    i = i - 1 ' ← 永遠に終わらないNext i```ループ変数を自分で書き換えると、終わらなくなることがあります。安全策:ループ変数は触らない。必要なら別の変数を使う。---● For Each の落とし穴:対象を削除すると壊れる```vbFor Each c In Range("A1:A10")    If c.Value = "" Then        c.Delete ' ← コレクションが変わって無限ループ化    End IfNext```ループ
0
カバー画像

【VBAで感動する瞬間⑬】Format関数で日付整形が一気にラクになる話 〜Right("0" & Month(Date), 2) 時代を卒業しよう〜

こんにちは。  ごんた@VBAレッスン です。今日は、実務でよく使うのに意外と知られていない  format関数の便利さについてお話しします。特に、日付を並べたいときに  「Year や Month や Day を組み合わせて、2桁にして、& でつなぐ」  という昔ながらのやり方をしていた方には、  きっと“目からウロコ”になる内容です。■ 昔はこうやって日付を作っていた(あるある)私も最初は、こんなコードを書いていました。```vbYear(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2)```そう、  Right("0" & Month(Date), 2)これ、みんな一度は通る道なんですよね。当時のVBA本は全部この書き方だったので、  「これが正解なんだ」と信じて真面目にやっていました。でも、実務で使っていると…- コードが長い  - 読みにくい  - 修正が面倒  - 似た処理を何度も書く  という“地味なストレス”が積み重なっていきます。■ format関数を知った瞬間、世界が変わる同じことが、formatを使うと一撃で終わります。● 8桁の yyyymmdd を作りたい```vbFormat(Date, "yyyymmdd")```● yyyy-mm-dd にしたい```vbFormat(Date, "yyyy-mm-dd")``` ● 日本語表記にしたい```vbFormat(Date, "yyyy年m月d日")```● 月や日を2桁固定に
0
カバー画像

【VBAで感動する瞬間⑫】エラーの対処法その2 〜黄色いバーの正体と、成長のステップ〜

こんにちは。  ごんた@VBAレッスン です。今日は、私自身が実務で積み重ねてきた  VBAデバッグの成長段階 をまとめてお話しします。特に、ほとんどの人が知らない  “黄色いバーを動かす”という裏技的デバッグの位置づけについて。これは、知った瞬間に世界が変わるレベルの話です。■ ① 最初の状態(多くの人が通る道) ● やっていたこと- ブレークポイントを置く  - 実行してエラーが出る  - 修正する  - 最初から再実行  - エラーが消えるまで繰り返す  ● このやり方の特徴- 正しい  - 真面目  - 教本通り  - でも エラー対処に時間がかかる● 問題点- 毎回初期化からやり直し  - 同じ状態を作るのが大変  - 途中状態を比較できない  - 「直った」が「理解」になりにくい  👉 労力で殴るデバッグ■ ② 中級:ブレークポイント+F8● できるようになったこと- エラーの手前で止める  - F8で1行ずつ実行  - 変数値をその場で確認  - エラー行だけでなく「前後を見る」  ● このレベルの強み- 原因特定の精度が上がる  - 推測ではなく事実で確認  - VBAでは王道かつ必須  👉 状態を見るデバッグ■ ③ 転換点:黄色いバーがドラッグできると知る● 知る前- ブレークポイントまで毎回最初から走らせるしかない● 知った瞬間- 今の状態のまま  - 実行位置を戻せる/変えられる  ● 起きる認識の変化- コード実行は「一方向ではない」  - 実行フローは 実験対象- デバッグが「検証」から「実験」に変わる  👉 衝撃を受けるのが普通■ ④ 黄色いバー操作
0
カバー画像

【VBAで感動する瞬間⑤】マクロ記録は、ほどほどに🧹

こんにちは。  ごんた@VBAレッスン です。  お読みいただき本当にありがとうございます😊VBAを学び始めた方が、  「えっ、そんなに違うの…?」と驚く瞬間があります。それが “記録マクロより、手書きVBAの方が圧倒的にきれいに書ける”と気づく場面です。  今回はその代表例として、太字設定を題材に、  マクロ記録の落とし穴と、手書きVBAの美しさを比べてみます。■ マクロ記録は便利だけど “ごみ” も吸い込むExcelのマクロ記録は、操作をそのままコード化してくれる便利な機能です。  ただし、実際の操作を細かく記録しすぎるため、- 不要なプロパティまで記録  - .Select /.Selection の乱発  - 冗長で読みにくいコード化  といった 「ごみ」まで吸い込んでしまうのが欠点です。初心者さんは、  「これ全部覚えないといけないの…?」  と不安になりがちですが、大丈夫です。これは “掃除機のごみパック” のようなもの。  必要なものと不要なものが全部まとめて入ってしまうだけなんです。 ■ 【例】A1 を太字にするだけなのに…😳 ▼ マクロ記録で作られるコード(ごみ多め)```vbaSub Recorded_Bold()    Range("A1").Select    With Selection.Font        .Bold = True        .Italic = False        .Underline = xlUnderlineStyleNone        .Strikethrough = False    End WithEnd
0
カバー画像

【VBAで感動する瞬間④】データの最後はどこ??

こんにちは。ごんた@VBAレッスン です。 今日も読んでいただき、本当にありがとうございます。 🔰 VBAを始めたばかりの頃、「データの最後ってどうやって選ぶの…?」 と毎回悩んでいました。 当時の私は、データ量が分からないとき、 とりあえず Range("A1:A10000") のように “多めに範囲を取っておく”という力技で乗り切っていました。 - どこまでデータがあるかわからない - とりあえず多めに指定しておけば安心 - 空白に当たったら「ここが終わりだな」と判断する 初心者の頃は、このやり方が“正解”に見えるんですよね。 でも実務では、だんだん苦しくなっていきます。 ❌ なぜ「多めに範囲を取る方法」が限界を迎えるのか - データ量が増えると処理が遅くなる - どこまで増えるか予測できない - 別シートや別ファイルでは通用しない - そもそも「最後の行」を正確に取れていない 実務では、 「毎回データ量が違う」 という状況が当たり前。 だからこそ、 “本当の最終行”を自動で取得する方法 が必要になります。 ✨ そこで登場するのが Rows.Count Excelには、 「そのシートの最終行番号」を返してくれる仕組みがあります。 それが Rows.Count。 例えば、A列の最終行を取得したい場合はこう書きます。 🔽 A列の一番下のセルを取得   Cells(Rows.Count, "A") そして、そこから上方向に向かって 「データがあるセル」を探すのが定番の方法です。 🔽 A列の最終データ行   Cells(Rows.Count, "A").End(xlUp) これを
0
カバー画像

【VBAで感動した瞬間②】A = A + 1 は正しい??

こんにちは。ごんた@VBAレッスン です。「A = A + 1」という書き方を見て、 「えっ?これ間違いじゃないの?」 と本気で思っていました。 数学の感覚で考えると、 A と A+1 が等しいなんてありえませんよね。 でも、VBAではこれは完全に正しい書き方なんです。 ■ VBAの「=」は“代入”の意味 VBAでは「=」は “右側を計算して、左側に入れ直す” という意味になります。 つまり、 A = A + 1 は、 ・右側の「A + 1」を計算する ・その結果を左側の「A」に代入する という動きです。 つまり、 「A を 1 増やす」という意味になります。 ■ 初心者の頃は100%混乱するポイント 私も最初は 「A と A+1 が同じってどういうこと…」 と頭がバグりました。 でも、 “数学の = と VBA の = は別物” と理解した瞬間、一気に視界が開けました。 ■ 実務でもよく使う書き方 A = A + 1 は、VBAの中でも使用頻度トップクラスです。 ・行番号を進める ・カウンターを増やす ・ループの回数を数える こういう場面で必ず出てきます。 i = i + 1 count = count + 1 row = row + 1 初心者のうちに慣れておくと、後の理解が本当に楽になります。 ■ 最後に はじめた頃に 「なんでこんな書き方するの?」 と疑問に思ったことほど、理解すると一気に楽しくなります。 これからも、 “初心者が知ったら世界が変わるVBAの小ワザ” を少しずつ投稿していきます。 初心者さん向けのレッスンこちらから!!https://coconala.c
0
カバー画像

【VBAで感動する瞬間⑰】道具は正しく使うと成果が変わる。ExcelとVBAで仕事が楽になる話

こんにちは。  ごんた@VBAレッスンです。今日は仕事中に、久しぶりに 「郵便番号を1文字ずつセルに入力する」Excel文書に遭遇しました。  さらに別の資料では セル結合されたデータベース にも出会い、思わず「これは…」とちょっとイラっとしてしまいました。こういうExcelの使い方を見ると、  「Excelの本質が理解されていないな…」と感じてしまいます。気づいた瞬間に、すぐ様式を直しました。■ Excelは“様式デザインアプリ”ではありません  Excelは本来、  データを扱うアプリケーション です。だから、- 1列に1項目  - 行にデータが並ぶ  - セル結合は使わない  - 1文字1セルにしない  これが基本。これを崩すと、  検索・集計・分析・連携…  すべてが壊れてしまいます。■ 1文字1セルは紙帳票の名残でしかない  郵便番号を  `1 2 3 4 5 6 7`  と1文字ずつ入力する文化は、紙の申請書の名残。Excelでやる意味はありません。- コピーできない  - 検索できない  - 結合しないと使えない  - 入力者の負担が増える  誰も得しない構造です。■ セル結合されたデータベースはもっと危険  見た目は整っているように見えて、実務では致命的。- ソートできない  - フィルターが壊れる  - 数式が不安定  - コピペでズレる  - 1行1レコードの原則が崩壊  つまり、  データとして成立していないということ。■ 様式として使いたいなら“別シートでやるべき”  データはデータとして整然と管理し、  様式は別シートに作る。そして、  VBAでデータ
0
カバー画像

【週末コラム⑤】「AIで何ができるのか?」を語り合った2日間

こんにちは。  ごんた@VBAレッスンです。昨日と今日の2日間、日本で最強のExcel&AI講師の講習を受けてきました。  以前から学ばせていただいている方なのですが、  今回も本当に濃い時間で、AIの話題を中心に深い学びが続きました。「どんなAIが何に強いのか」  「これからどんなことができそうか」  そんな未来の話で盛り上がり、  2日間ずっとワクワクしっぱなしでした。そして何より、  明日から実務にそのまま生かせる内容ばかり。こういう学びは本当に貴重です。■ AIは“ひとつ”じゃない  今回あらためて感じたのは、  AIといっても種類によって得意分野がまったく違うということ。● Chat系AI  文章整理、調べ物、コードの意味説明など  “考える補助”が得意。● 画像生成AI  サムネ作成、デザイン案、イメージ化など  “形にする力”が強い。● コード生成AI  コード補完、エラー推測、改善提案など  “実務の効率化”に直結する。AIは「ひとつの道具」ではなく、  用途ごとに選ぶ時代に入っていると実感します。■ AIはどこまで進化するのか  2日間の講習で特に面白かったのは、  “これからAIがどこまでできるようになるか” という未来の視点。- 業務フローを自動で組み立てる  - データを読み込んでレポートを自動生成  - ユーザーの癖を学習して最適化  - 初心者のつまずきを予測して先回り支援  こうした未来は、もう遠い話ではありません。ExcelやVBAの世界も、  AIと組み合わせることで  “学び方”も“仕事の進め方”も大きく変わっていきます。■ 私自身も、日々ス
0
カバー画像

【週末コラム④】AI時代に大切な「探求心」と「見極める力」

こんにちは。ごんた@VBAレッスンです。 最近、AIの進歩が本当にめざましいと感じています。 文章を整理したり、疑問に答えてくれたり、 ちょっとした調べ物も一瞬でまとめてくれる。 でも、そんなAI時代だからこそ、 私は大切にしていることがあります。 それは 「探求心」と「見極める力」です。 ■ AIは“世界中の図書館を全部集めた以上”の情報量を扱える AIは、世界中の知識のパターンを学習しています。 よく「図書館にある本を全部読んだようなもの」と例えられますが、 実際にはそれ以上で、 - 世界中の図書館 - 大学の研究データ - 専門家の知識 - 技術資料 - Web上の膨大な情報 こういったものの “傾向”をまとめて扱える存在です。 もちろん、著作権のある本を丸ごと覚えているわけではありませんが、 人間が一生かけても読み切れない規模の知識のパターン を学習している、 という意味では、図書館の比ではありません。 だからこそ、AIは 「調べ物の相棒」として圧倒的に便利なんです。 ■ ただし、AIは“正解を知っている先生”ではない AIは統計的な傾向から 「もっともらしい答え」を作る仕組みです。 そのため、 - 多数派の意見に寄る - よくあるパターンを優先する - 例外や専門的なケースを外すことがある こういう特徴があります。 つまり、 > AIの答え=正解 ではないここを理解しておくことがとても大切です。  ■ 大切なのは「得た回答を吟味して見極めること」 AIが返してくれた答えをそのまま信じるのではなく、
0
カバー画像

【VBAで感動する瞬間⑮】変数名の付け方 その1

こんにちは。  ごんた@VBAレッスンです。今日は、初心者さんが必ず一度は悩む「変数名の付け方」についてお話しします。実はこれ、VBA歴20年以上の私でも、ここ最近になってようやく“自分の中の法則”が固まってきたくらい、奥が深いテーマなんです。■ 最初はみんな迷う。私は AAA とか BBB でした正直に言うと、私も最初の頃は変数名なんて全然分からなくて、  とりあえず AAA とか BBB とか付けていました。「あとで直せばいいや」と思うんですが、  コードを作り込んでいくと、結局そのまま直さなくなるんですよね。さらに実務では、- 他のモジュールでも同じ名前を使っていたり  - 一括置換すると別の場所まで変わってしまったり  そんな理由で、うかつに変数名を変えられない状況がよくあります。これは本当に“実務あるある”です。■ 変数名は「自分のため」に始まり、「他人のため」に進化する変数名にはいろんな付け方があります。  ネットで調べれば、命名規則やテクニックもたくさん出てきます。でも、どれだけ方法を教えてもらっても、> 自分が分かりやすい・使いやすい> これがないと、しっくりこない。そして、あとで読み返したときに  「これ何の変数だっけ?」となってしまいます。ただし、実務が進んでいくと、  “自分だけが分かる名前”では通用しない場面が出てきます。- 公開するコードを書くとき  - チームで共同作業するとき  - 社内で命名ルールが決まっているとき  - 他の人が保守する前提のとき  こういう場面では、> 「自分が分かる」だけではなく、「他の人にも分かる」名前が
0
カバー画像

【VBAで感動する瞬間⑪】エラーの対処法その1

こんにちは。  ごんた@VBAレッスン です。今日は、  ”エラーとの向き合い方” をお話しします。 ■ エラーが出たら、まず“最小単位”にするVBAを書いていてエラーが出ると、  昔の私はつい「全部を直そう」としていました。でも今は違います。エラーが出たら、  元のコードはそのままにして、原因だけを最小単位に切り分ける。これが私の基本方針です。■ そのために欠かせないのが、イミディエイトウインドウイミディエイトウインドウは、  VBAの中で一番“気軽に試せる場所”。ここでは、- ? で値を確認  - 一行書いてそのまま実行  この2つができます。そして私は、この どちらも便利で必要 だと思っています。■ ? は「中身を見る」ための最速ツール? は Debug.Print の省略形。```vba? fname? InStr(fname, "_")```こう書いて Enter を押すだけで、- 変数の中身  - 関数の戻り値  - 計算結果  が一瞬で分かります。“確認”に特化した最強の道具です。■ 一行実行は「実際に動かす」ための最速ツール一方で、一行実行は Excelを実際に動かす ためのもの。```vbaRange("A1").SelectCells(i, 1).SelectRange("B1") = fname```こう書いて Enter を押すだけで、- セルを選択させる  - 値を書き込む  - ループの現在位置を確認する  など、実際の動作をそのまま目で確認できます。“動きを見る”ための最強の道具です。■ 元のコードは触らない。原因だけを切り分ける私が ? と一行実
0
カバー画像

【VBAで感動する瞬間⑩】InStrとInStrRevが分かった日

こんにちは。  ごんた@VBAレッスン です。お読みいただきありがとうございます。昔の私はこの2つが全く理解出来ませんでした。たくさんつまずきましたが、分かると非常に便利です。“つまずくポイント”を全部分かった上で、やさしく説明します。 ■ InStr / InStrRev って何ができるの?文字列の中から「特定の文字がどこにあるか」を探す関数 です。そして実は… 👉 ほとんどの場合、  「文字列」と「探したい文字」だけ指定すればOK。これだけで、実務の文字抽出が一気にラクになります。例えば:- セルの中から必要な部分だけ抜き出す  - ファイル名から日付だけ取る  - メールアドレスの「@」の前後を取る  - 最後の「_」の位置を探す  - 拡張子の「.」の位置を取る  こういう“実務でよくある処理”が全部できるようになります。 ■ でも私は最初、全く理解できませんでした参考書を読んでも、  InStr と InStrRev の説明が全然頭に入らなかったんです。理由ははっきりしていて、 ❶ プロパティ(引数)が多すぎる  InStr([start], string1, string2, [compare])  「start? compare? 何それ?」状態。 ❷ 戻り値が状況によって違う  - 見つかったら「位置」  - 見つからなかったら「0」  - 空文字だとまた別の動き  初心者には混乱の元。❸ 実務で使わない例ばかり  InStr("ABCDE", "C")  …いや、そんな文字列、実務で出てこない。 ❹ しかも InStrRev だけ引数の順番が違う  InStr
0
カバー画像

【VBAで感動する瞬間⑨】色で苦労してきた私の答え

こんにちは。  ごんた@VBAレッスン です。お読みいただきありがとうございます。今日は、いつもより“ちょっとだけ高度な話”をします。  でも安心してください。  色で苦労してきた私自身の経験をもとに、できるだけ分かりやすくお伝えします。Excel VBAで多くの方がつまずく  「色の扱い」 について、  私が長い時間をかけて試行錯誤し、  “絶対の正解とは言わないけれど、実務では本当にラクになった方法”  にたどり着いたので、それをまとめます。 ■ 多くの人がつまずく「色の3つの壁」 ❶ 色の指定方法が複数あって分かりにくい  - RGB(255,0,0)  - ColorIndex = 6  - Interior.Color = &H00FF00(BGR方式)  - ThemeColor + TintAndShade初心者さんには「どれを使えばいいの?」となりがち。 ❷ “今ついている色”が何なのか分からない  - 「このセルの色ってRGBで何?」  - 「ボタンの色をVBAで指定したいけど番号が分からない」  毎回調べるのが本当に面倒。 ❸ 色を変えるたびにコードを書き直す必要がある  デザイン変更のたびにRGB値を修正するのは非効率。 ■ 私が試行錯誤の末にたどり着いた“実務で一番ラクな方法”これは絶対の正解ではありません。  でも、色で苦労してきた私にとっては  一番ミスが少なく、運用がラクで、長く使える方法 でした。それが… 🎯 「色設定セル」を作り、すべての色をそのセルと“同じ色”にする仕組みつまり、- 色の管理を コードの外 に出す  - 実際の色は シ
0
カバー画像

【VBAで感動する瞬間⑧】 Cells?Range?Offset?順番バラバラ問題は“行→列”で一気に解決!

こんにちは。  ごんた@VBAレッスン です。お読みいただきありがとうございます。  今日は、VBAを学び始めた方が必ずつまずく 「セルの指定の順番」についてお話しします。Excelは「列 → 行」で見えるのに、  VBAは「行 → 列」だったり、  Rangeだけ「列 → 行」だったり…。  さらに Offset が混ざると、  「もうどこのセル触ってるのか分からない!」という大混乱が起きます。でも安心してください。  今日の内容を理解すると、一気にスッキリします。 ■ Excelは「列 → 行」、でもVBAはそうじゃないまず、Excelの見た目はこうです。- B3(列B → 行3)これは直感的で分かりやすいですよね。ところが、VBAに入ると順番が変わります。■ Range は Excelと同じ「列 → 行」```vbaRange("B3")```これは Excel と同じ感覚で使えます。■ Cells は「行 → 列」```vbaCells(3, 2) ' → B3```Excelと逆なので、ここで混乱が始まります。■ Offset も「行 → 列」```vbaOffset(行のズレ, 列のズレ)```Cells と同じ順番です。■ ここで大混乱が起きる例えば、これ。```vbaRange("B3").Offset(1, 2)```これは  B3 から 1行下・2列右 → D4。でも Cells で書くとこう。```vbaCells(3, 2).Offset(1, 2)```やっぱり D4。ただし、  - Range は「列 → 行」  - Cells と Offset は
0
カバー画像

【VBAで感動する瞬間⑦】Application.ScreenUpdating = False は“おまじない”

こんにちは。  ごんた@VBAレッスン です。お読みいただき本当にありがとうございます😊  今日は、VBAを学び始めた方が必ず一度は通る「画面チカチカ問題」についてお話しします。 ■ マクロがチカチカする…とりあえず“おまじない”を入れていた頃マクロを実行すると画面が切り替わってチカチカ…。  ネットで調べると、だいたいこう書いてあります。```vbaApplication.ScreenUpdating = False```「とりあえず入れとけば速くなるらしい」  そんな“おまじない”のように使っていた時期が、私にもありました。でも今は、まったく使っていません。なぜなら、  チカチカの原因は“階層の理解不足”だったと気づいたからです。■ チカチカの正体は「階層を意識していないコード」例えば、こんなコード。```vbaRange("A1").Value = "こんにちは"```これは  「アクティブなシートのA1」 という意味です。- どのシートか指定していない  - .Select や .Activateを多用して画面が切り替わる  - 結果としてチカチカする  つまり、  画面が動いているのではなく、コードが画面を動かしているということなんです。■ おまじないでごまかしていた頃の自分当時の私は、- とりあえず ScreenUpdating = False を入れる  - なんとなく速くなった気がする  - でも根本原因は分かっていない  こんな状態でした。効果はあるけれど、  「なぜ必要なのか」を理解していないまま使っていたというのが正直なところです。■ 今は「正しく指定する
0
カバー画像

【VBAで感動する瞬間⑥】型より大事なのは“この変数は何か”が分かること

おはようございます。ごんた@VBAレッスン です。お読みいただき本当にありがとうございます😊がんばって、朝方の投稿にしてみたいと思います!!VBAを学び始めた方が、よくつまずくポイントがあります。  それが 「変数の宣言って難しそう…」 という不安です。VBAは初期状態だと  変数の宣言を強制する(Option Explicit)がオフになっています。これだけを見ると、> 「あ、宣言しなくてもいいんだ」  > 「型とか難しそうだから、このままでいいや」と感じてしまうのも無理はありません。  実は、私自身も昔はオフのまま使っていた時期があります。でも、これは大きな誤解なんです。 ■ Option Explicit がオフ=宣言不要ではない初期状態がオフなのは、  昔のVBAが「誰でも簡単に使えるように」という思想で作られた名残です。“宣言しなくていい”という意味ではありません。むしろ、初期のころほど オンにすべき設定なんです。■ 宣言しないと何が起きるのか宣言なしでコードを書くと、こんな落とし穴があります。- スペルミスに気づかない  - 意図しない変数が勝手に作られる  - バグが“静かに”発生する  - デバッグが地獄になる  例:```vbaTotal = 100Ttoal = 200 ' ←気づかない```Option Explicit をオンにしていれば、  「Ttoalなんて変数ないよ!」と教えてくれます。学び始めた方ほどここで必ず  「えっ…そんな落とし穴が?」  と驚くポイントです。 ■ 型は“必須”ではない。宣言だけで十分学び始めた方ほどよく抱え
0
カバー画像

【週末コラム②】VBAで挫折してしまうこと

こんにちは。ごんた@VBAレッスンです。 今日は、私自身がVBAを学び始めた頃に感じていたこと、そして今のAI時代に思うことを少し深掘りしてみます。 💥 初心者が最初にぶつかる“最大の壁”私がVBAを学び始めた頃、一番つらかったのは 「エラーの意味が分からない」 ことでした。 - どこが悪いのか分からない - 何を直せばいいのか分からない - そもそも何を調べればいいのか分からない この「分からないの三重苦」で、本気で挫折しそうになったことを今でも覚えています。 でも、ある瞬間に視界が一気に開けたんです。 > あ、こういう時はこのキーワードで調べればいいんだ > このエラーはこういう意味か > ここを疑えばいいのか “正しい調べ方”が分かると、エラーは敵ではなく「ヒント」に変わります。 🧠 初期の挫折は「調べ方が分からない」から起きる 初心者が挫折する理由は、能力の問題ではなく、調べ方を知らないだけ。 最初のうちは、 - 何を検索すればいいか分からない - どの言葉で調べればいいか分からない - どこを疑えばいいか分からない だから解決に時間がかかり、 「自分には向いてないのかな…」と心が折れてしまう。 でも、正しい調べ方を知れば、誰でも必ず前に進めるようになります。 ⚠️ 最近の“AIならすぐ自動化できます”に違和感がある 最近ネットでよく見る、 > 「AIに任せればコードが簡単に書けます」 > 「初心者でもすぐ自動化できます」 という言葉に、少しモヤっとします。 AIが悪いわけではありません。むしろ強
0
カバー画像

【週末コラム①】VBAを学ぶ必要はあるのか?

こんにちは。ごんた@VBAレッスン です。 今日も読んでいただき、本当にありがとうございます。今日は、「VBAって今から学ぶ必要ありますか?」について、私自身の考えをまとめてみます。結論から言うと、 業務改善をしたい人にとって、VBAは今もこれからも“非常に価値が高いスキル”だと考えています。 これは単なる好みではなく、 Excelの普及状況、技術の継続性、RPAとの比較、AI時代の変化など、 複数の根拠に基づいた意見です。 🌍 Excelは世界の“共通言語”であり続ける まず大前提として、 Excelは世界で最も使われている業務ツールです。 - 製造 - 金融 - 教育 - 行政 - 海外企業 どの業界でも、Excelは当たり前のように使われています。 さらに Microsoft は - Power Query - Power Pivot - Python in Excel など、継続的に機能を拡張しています。 つまり、 Excelが急に消える未来はほぼあり得ない。むしろ、ますます強化されていく流れです。 この前提がある限り、 Excel上で動くVBAの価値も揺るがないということになります。 ⚡ VBAは“業務改善の即効薬” 多くの業務データはExcelに存在し、 日々の作業もExcelで行われています。 この環境で、 PythonやJavaScriptを学ぶよりも、 Excelと直接つながるVBAを学ぶほうが圧倒的に効果が早い。- すぐに業務に使える - 小さな改善でも効果が大きい - 現場で完
0
カバー画像

【VBAで感動した瞬間①】Cells(1,"B") の衝撃

ごんたです。VBAを始めた頃、 「えっ、そんな書き方あるの⁉️」 と本気で驚いた瞬間がいくつもありました。 その中でも一番の衝撃がこれ。 Cells(1, 2) しか知らなかったのに、 Cells(1, "B") と書けると知った日。 なぜこれが感動なのか • 列番号を数えなくていい • コードが読みやすくなる • 実務の表と感覚が一致する • ループと組み合わせると一気に便利になる 初心者の頃はよく 「◯列目って何列だっけ…?」 と迷っていました。でも列名で書けると、 Excelの見た目とコードが一致して、理解が一気に深まりました。 これからも、 知っていたら絶対ラクになるVBAの感動ポイントを 短く・分かりやすく紹介していきます。
0
31 件中 1 - 31