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

すべてのカテゴリ

64 件中 1 - 60 件表示
カバー画像

VBA×○○○の魅力

VBAは主にOffice系(ExcelやPowerPoint)を自動化する言語であり、Office以外の自動化となると極端にできることが少なくなります。しかしそんなVBAでも別の何らかと連携させることでできることの幅が大きく広がります。ここではそんなVBAと連携させることで機能が拡張できる"別の何らか"をいくつかご紹介します。Windows APIWindows APIとは簡単にいえばWindowsに用意されている機能がまとまっているセットのようなもので、VBAからそれらを呼び出すことでWindowsに用意されている様々な機能を使用することができます。これら機能はほとんどの場合、VBAだけでは実現できないものばかりですVBAではWindowAPIを呼び出すための定型文、いわゆる"おまじない"をコード上に記載するだけすぐに呼び出すことが可能です。ウィンドウを操作(サイズ変更、透明化など)したり、クリップボードを操作したり、マウスやキーボードの制御、画像や図形の描画などのようなVBAでは実現できない非常に多くの操作を可能にしてくれます。ポインタやメモリといったC++言語寄りの考えが出てきたり、外部アプリケーションに影響を与える関数なども存在するためある程度の知識を付けておく必要があります。自作DLL (Dynamic Linking Library)WindowsAPIはWindowsに標準装備されているDLLファイル内にある関数を呼び出しているだけなのですが、DLLファイルは自作することも可能です。たとえば自作DLL内で画像処理が得意なOpenCVを使った顔認識の関数を作成すれば
0
カバー画像

エクセル2019勉強中③ 連続印刷(マクロ使用)

少し忙しかったので、ブログ更新をサボってしまいました(-"-)今回も勉強時間は取れないので、私が使っているものの紹介になります。マクロを使用して連続印刷を行います。私自身は請求書発行などで使用していますが、年賀状のあて名書き印刷にも工夫すれば使えると思います。・・・ハガキレイアウト作るのがちょっと大変だと思いますが (^_^;)WORDでの差し込み印刷と同じ感じですが、エクセルの方が使い慣れているので私はこちらを使っています。私自身はプロではないので、もっと良い作成方法あるかもしれませんが、大目に見て頂けると幸いです(^^♪【連続印刷の方法】①印刷レイアウトを作成します。 今回はすごくシンプルに作成しており、関数はVLOOKUPを使っています。 A1の郵便番号部分の関数は  =VLOOKUP($C$2,$A$6:$D$10,3,0) と入っています。意味は、 「表A6~D10の一番左の数字がC2の数字と一致する行の  左から3番目のセル値を表示」となります。②連続印刷用のマクロを作成します。 「表示」タブ → 一番右の「マクロ」の下向き矢印 →「マクロの記録」画面が出てくるので、マクロ名を「連続印刷」と入力 →マクロの記録を開始 →すぐ終了させます。(停止ボタンは記録開始と同じ場所)③作成したマクロを連続印刷用マクロへ書き換えます。 「マクロ」ボタンを押すと、作成したマクロが表示されるので 編集するマクロを選択し、「編集」ボタンを押します。 マクロが表示されるので、下記のマクロを「End Sub」が 最後に来るように貼り付けして、マクロの画面を終了させます。 ※1行目はプロの方
0
カバー画像

ブロックを外すには・・・(マクロの駆動)

昨日のブログにて記載した共有フォルダ上にあるExcelのマクロを動作させる方法を説明します。今回の方法は、共有フォルダがあるIPアドレスを活用する方法です。コントロールパネル→ネットワークとインターネット→ネットワークと共有センターを選択します。インターネットオプションを選択し、インターネットのプロパティを開き、セキュリティのタブを選択します。ローカルイントラネットを選び、サイトをクリック。詳細設定を選択し、このwebサイトをゾーンに追加するの欄に、IPアドレスを記載することでマクロを駆動させることができます。共有フォルダを一度登録してしまえば、別のデータを新規で追加してもマクロは動くことができます。
0
カバー画像

【上級者向け】Excel VBA ちょっとしたテクニック

閲覧いただきありがとうございます!Excel VBA関連で出品しているさべろくと申します。今回は使えるシーンは限られているけど、知っておくと助かるそんなテクニックについて書いていこうと思います。一応上級者向けと銘打っておりますが、初心者の方も知っておくと後々使える機会もあるかと思いますので是非ご覧ください。唐突ですが、VBAは古い言語です。初出は1993年ですので、29年前からある言語となります。そのため、Python等と比べると色々用意されている関数が少ないです。例えば配列の中身をソートさせるにもPythonならsortと書けばできるのにVBAでは自分で実装してあげる必要があります。そのように既存に用意されている便利なものを使うのではなく、自作するというシーンがExcel VBAで物を作っていると度々あります。これがまたプログラミングの根本的な部分に触れる機会になってExcel VBAの楽しいところなのですが、難しいところでもあります。歴史の長い言語で元からある記事に加えて、昨今のプログラミングブームもあり、Excel VBAの記事も増えてきていることから、例えば先ほど挙げたソートの例なら「excel vba 配列 ソート」とかで検索すればヒットするのでそこまで苦労はないでしょう。ですが、経験上まだ完璧かというと少し足りないなと感じています。例えば、数学の組み合わせの問題というのがあります。10個の色付きボールから4個選んだときの組み合わせを列挙せよ、といった問題です。この場合「excel vba 組み合わせ 列挙」とかで調べるとしましょう。調べると組み合わせを算出する関数を
0
カバー画像

あれ?ExcelVBAのツールで1行目だけうまくいかない。

ExcelVBAのツールで、1行目のデータだけうまく取り込めない(うまく判定されない)ことがあると思います。それは、文字コードが原因の可能性があります。以下の点を確認してみてください。上記の画像では、「UTF-8」となっていますので、これでは、Excelが想定している文字コードではないため、うまくいかない場合があります。「ANSI(Shift-JIS)」に変更してみてください。「ANSI(Shift-JIS)」へ変更方法ファイル>名前付けて保存・・・赤枠の文字コードを「ANSI」を選択し、保存してください。以上で、変更可能です。<補足>変更後、そのまま保存すると文字化けする場合がありますが、その場合は、記載されている文字を別のファイルに退避させておき、文字コードを変えたファイルを作成後貼り付けしてみてください。以上となります。どなたかの参考になれば、嬉しいです。
0
カバー画像

【Excel小ネタ-1】マウスを使わずにExcelを起動する方法

 エクセルを起動するには、デスクトップ上のショートカットアイコンをダブルクリックする方法が一般的かと思います。しかし、これだとわざわざとマウスを使ってカーソルをアイコン上に移動させる必要があり、無駄な時間がかかります。ここでは、Excelをキー操作だけで素早く起動させる方法をご紹介します。①まずWindowsキーを押すと、スタートメニューが表示されます。②続いて、Eキーを押します。 ※WindowsキーとEキーは同時に押すとエクスプローラーが起動してしまいますので、ご注意ください。③最も一致する検索結果として、Excelが表示されますので、そのままEnterキーを押せばエクセルが起動されます。 この方法で短縮できる時間は数秒程度ですが、塵も積もれば山となりますので、一年を通せば結構な効率化になるかと思います。是非試してみてください(^_^) 普段はテンプレ作成からマクロVBAまで、Excelに関する様々な作業を引き受けております。「こういうことはできますか?」の確認だけでも大丈夫ですので、是非お気軽にお問い合わせくださいませ。何か解決策がないか、一緒に考えましょう!(^_^)
0
カバー画像

Excel VBA オーバーフローというエラーが出てくるとき

ココナラでExcel VBA関連のサービスをやっているさべろくと申します。閲覧いただきありがとうございます。いきなり本題ですが、Excel VBAで下記エラーが出るときがあります。これは指定したデータ型の範囲を超えた場合に出てくるエラーです。例えばInteger型で変数を宣言した場合は、-32,768~32,767の範囲に収まっていないと上記エラーが出ます。直す方法はもっと大きな範囲を扱える型にすることです。例えばLong型にすれば-2,147,483,648〜2,147,483,647の範囲の数値を扱えます。ここまではよく記事に書かれている内容です。ちょっとだけ変わった事例のお話をします。それはLong型を超えた場合にどうすればいいのか?という話です。仕事でLong型を超えるケースに遭遇しました。数学で扱われる組み合わせを列挙する問題です。例えば、10個のボールから4個選んだときの組み合わせのパターンを列挙しなさいといった問題です。実際には10個から4個選んだ組み合わせの場合は、セルに「1 2 3 4」「1 2 3 5」のように組み合わせを記載していくというものです。下記の通りExcelを用意しました。総数を指定して抜き取り数を指定すると、通り数が算出されます。通り数はExcelの関数であるCOMBINを使って算出しています。実行ボタンを押すと1シートに下記のように表示されます。※これは10通りから3つ選んだときの結果です。総数と抜き取り数を自由に設定できるようにしているため、ここで問題が起きました。通り数がエクセルの1シートのセルの数(約171億)を超えてしまい、書ききれず
0
カバー画像

【Excel小ネタ-2】エクセルでパズル作成

 エクセルは、普段ビジネスやデータ分析などの実務に使われることが多いソフトウェアですが、実は、エクセルを使って簡単なパズルゲームを作成することもできます。たとえば、数独やクロスワードパズル、色を使ったパターンマッチングゲームなどが挙げられます。  数独は、9×9のマス目に数字を配置していくゲームです。エクセルで数独を作成する場合、まずはセルに数字を入力します。数字を入力するときには、同じ数字が入力されていないかを条件付き書式でチェックすることができます。また、数字の入力が完了したら、数式を使って行や列、ブロックの合計が正しいかどうかをチェックすることができます。これによって、自動的に数独の答えが導き出されます。  クロスワードパズルは、縦と横に単語を配置していくゲームです。エクセルでクロスワードパズルを作成する場合、まずはセルに単語を入力します。単語を入力するときには、同じ文字が入力されていないかを条件付き書式でチェックすることができます。また、単語の入力が完了したら、数式を使って単語が重なっている箇所の文字が正しいかどうかをチェックすることができます。これによって、自動的にクロスワードパズルの答えが導き出されます。  色を使ったパターンマッチングゲームは、同じ色のブロックを3つ以上つなげていくゲームです。エクセルで色を使ったパターンマッチングゲームを作成する場合、まずはセルに色を塗ります。色を塗るときには、同じ色が繋がっていないかを条件付き書式でチェックすることができます。また、色の塗りが完了したら、数式を使ってつながっている同じ色のブロックの数を数えることができます。
0
カバー画像

Excelデータを共有し、同時編集を可能にするには。

事業所内ネットワークの、共有フォルダにExcelデータを置いておき、運用する場合に同時編集を可能にする方法について説明します。事業所でExcelデータを共有する場合、同時編集することができるように設定することで、『読み取り専用』になることなく、編集できないストレスを減らすことができます。Excelのバージョンによって異なりますが、使用しているバージョンが、Excel for Microsoft 365であれば、ワンドライブなどクラウド上に保存する方法で、データを共有し、共同編集がが可能となります。しかし、事業所に導入されているExcelバージョンが古いと上記の方法はとれず、データがクラウド上にあるので管理する人も必要になります。そもそも共有フォルダ上にデータが存在しないので、管理するにも注意が必要です。下記に、Excelバージョンが最新でなくても共有できる方法を記載します。①Excelの ファイル→その他→オプション→クイックアクセスツールバーを押します。②コマンドの選択をすべてのコマンドを押し、一覧の中から→ブックの共有(レガシ)を選択し、追加します。③クイックアクセスツールバーにある、ブックの共有ボタンを押す。④編集タブの、『新しい共同編集機能ではなく、以前の共有ブック機能を使用します』にチェックして、『OK』です。かなり簡単ですが、注意が必要な点があります。まず、共有することでVBAの編集、シートの削除ができなくなります。VBAそのものは駆動します。VBAの編集など操作が必要な場合には、リボンの校閲から、ブックの共有を解除します。また、テーブル機能も利用できないので、事前
0
カバー画像

[VBA実践]Excel関数を有効活用しよう![#4]

前回の記事はこちらさて、前回の記事で、CellsとRangeを組み合わせ、スマートなコードを書くことが出来ました。それが以下になります。Sub 担当者ごと抽出()     Dim targetName As String     Dim rowLong As Long     Dim exRowLong As Long     targetName = Cells(1, 9).Value     exRowLong = 2     For rowLong = 2 To 16         If Cells(rowLong, 6).Value = targetName Then             '一緒だった時の処理             Debug.Print "担当者名が" & targetName & "と同じです!"             Range(Cells(exRowLong, 11), Cells(exRowLong, 16)).Value = Range(Cells(rowLong, 1), Cells(rowLong, 6)).Value             exRowLong = exRowLong + 1         Else             'そうでない時の処理             Debug.Print "担当者名が" & targetName & "ではありません!"         End If     Next End Subこのコードの問題点は、For文の範囲が2~16となっており
0
カバー画像

そのExcel作業、マクロ化できるかも?自動化しやすい業務チェックリスト

毎月のExcel作業で、こんなことはありませんか?先月のデータをコピーして、今月分に貼り付ける。CSVを開いて、必要な列だけ残して、不要な行を消す。別シートに数字を転記して、集計表を作る。最後に見た目を整えて、上司や取引先に提出する。ひとつひとつは難しい作業ではないかもしれません。ただ、毎月・毎週・毎日となると、思った以上に時間が取られます。しかも、Excel作業は地味にミスが起きやすいです。コピーする範囲を1行ずらしてしまったり、古いデータを消し忘れたり、関数が崩れていたり。確認に時間がかかるわりに、評価されにくい作業でもあります。そういった作業は、ExcelマクロやVBAで自動化できる可能性があります。今回は「この作業はマクロ化できるかも?」という視点で、自動化しやすい業務の特徴をチェックリスト形式でまとめます。まず、マクロ化しやすい作業には共通点があります。一番分かりやすいのは、「毎回ほぼ同じ手順で行っている作業」です。たとえば、毎月決まったCSVを取り込んで、不要な列を削除し、商品別や担当者別に集計する。あるいは、売上データを貼り付けて、請求書や報告書を作成する。こういった作業は、ルールが決まっていれば自動化しやすいです。逆に言えば、「人が毎回考えて判断している作業」よりも、「決まった条件で処理している作業」の方がマクロ化に向いています。では、実際にどんな作業が自動化しやすいのか、チェックしてみましょう。□ 毎月同じExcelファイルを使っている□ CSVを開いて、毎回同じ形に整えている□ 複数のExcelファイルを1つにまとめている□ 売上や経費を担当者別・店舗別・商
0
カバー画像

Excelのマクロについて一般的な認識は

「こういうのってマクロで処理するんですか?」と自分の職場ではよく相談を受けます。普段Excelはよく使っているものの、シートに「仕組み」を組み込みたい時に「何か便利でスマートなものにできないかな」と言う漠然とした気持ちから出てくるようです。非常によく例として出るのが「if文とか使って〜」などですが、関数の組み合わせとマクロの違いについてイマイチご存知ないようです。使う機会がなかったのですからそんな感じになるのが普通ですよね。ざっくり述べると、マクロと言うのは表(シート)とは別にプログラミング言語を使って処理の手順を記述したもの(プログラム)を作成し、必要な時に実行させて利用するものです。あくまで「マクロ実行」を指示しない限りマクロは動きません。(と、ここでは思っていただきます)一方、Excel関数を組み合わせて条件によってセルの内容を変化させるだけであれば、それはマクロではありません。セルの中に記述してある式を見ると論理式(if文とか)が入っていたりするので、プログラミングの姿にも見えてしまうかもしれません。これらは式が参照しているセルに何か入力すると即座にそのセルの内容によって式の値が変化します。マクロはExcelだけに限ったものではなく、さまざまなアプリで用意されています。一連の作業をユーザーの代わりに一括して処理してくれるので定期的に行う機械的な作業があればマクロ化しておくのも便利です。便利とは言え、マクロを組むにはプログラミングの知識や運用方法(実務にどう組み込むか)を勉強する必要があり、ある程度の経験者にアドバイスをしてもらう方が良いでしょう。
0
カバー画像

【Excel VBA】コンボボックスの作成は今すぐ禁止

YoTubeでも解説しています。ぜひ、ご覧ください。Excelの初心者の頃は、何かとコンボボックスを作成したくなります。 次に、連動のコンボボックスですね。 しかし、凝りすぎると、コンボボックスは不便です。 【Excel VBA】コンボボックスの作成は今すぐ禁止こんにちは。伊川です。 Excelの初心者の頃は、何かとコンボボックスを作成したくなります。 次に、連動のコンボボックスですね。 しかし、凝りすぎると、コンボボックスは不便です。 今回は、コンボボックスに変わる方法を紹介します。 以前に、連動のコンボボックスの作成は、下記の記事で紹介しています。 参考にしてください。 連動コンボボックス作成には、様々な方法があります。 INDIRECT関数を利用する方法はやめた方がいいです。 これは、経験談です。 業者とかに、システムを発注しても、平気で、長いコンボボックスを作成してくるときがあります。 はっきり言いますが、こんなコンボボックスは、迷惑のなにものでもありません。 だから、社内システムは、処理を、知っている人が一番です。 このブログはこんな人にお勧めコンボボックスが、不便と思っている人 連動のコンボボックスを作成したいと思っている人 コンボボックスを最強と思っている人 このブログを、読み終わるころには・・・・コンボボックスのリストは、せいぜい、5行までです。 私は、競馬をしていますが、競馬場の選択は、10行あります。 10行の中から、選択するのは、本当に不便です。 発送の転換と、少しの配列の知識で、作成可能です。 連動のコンボボックスに変わる手段個人的な意見ですが、連動のコ
0
カバー画像

【Excel VBA】クラスモジュールのプロパティの設定・呼出

YoTubeでも解説しています。是非ご覧ください。何かと仕切りの高いクラスモジュールですが、マスターしたい気持ちも駆られて頑張っています。 以前に紹介した、ExcelVBA 実践のための技術を熟読した結果です。 クラスモジュールのプロパティこんにちは。伊川です。 何かと仕切りの高いクラスモジュールですが、マスターしたい気持ちも駆られて頑張っています。 以前に紹介した、ExcelVBA 実践のための技術を熟読した結果です。 クラスモジュールを勉強していますが、なかなか難しいです。 派手なアクションを求めるより、基礎も勉強しようと思い、下記の書籍を熟読しました。 わずかな行数ですが、こんなにも奥が深いのかと思う内容でした。 少しだけまた、理解が深まり、うれしい気持ちになっています。 VBAを実行しても、本当にカンタンな内容です。 わざわざ、クラスモジュールを使う必要がない内容です。 はっきり言ってつまらないです。 しかし、このつまらない内容に、クラスモジュールで、プロパティの設定、呼出が詰まっています。 このブログはこんな人にお勧めExcelVBAを勉強している人 クラスモジュールが何か理解できていない人 クラスモジュールを利用して、かっこいいコードを書きたい人 このブログを、読み終わるころには・・・・ExcelVBA 実践のための技術の9章にクラスモジュールの記載があります。 いきなり、読んでも多分理解できません。 もし、ExcelVBA 実践のための技術を持っているなら、このブログを読んだ後に、 もう一度、ExcelVBA 実践のための技術9章を読み返していただくと、理解できる
0
カバー画像

[VBA実践]とにかくマクロを完成させよう![#2]

前回の記事はこちらさて、前回までで、1行分のデータを抽出対象か、そうでないか判定するところまでは書きました。以下のようなコードになっているはずです。Sub 担当者ごと抽出()     Dim targetName As String     targetName = Cells(1, 9).Value     If Cells(2, 6).Value = targetName Then         '一緒だった時の処理         Debug.Print "担当者名が" & targetName & "と同じです!"     Else         'そうでない時の処理         Debug.Print "担当者名が" & targetName & "ではありません!"     End If End Subこの状態から、「まずは完成させること」を最優先して、実際にコードを書いてみましょう。1行分の処理を完成させるさて、前回まででは「抽出担当者名と等しいかを判定するところまで」で終わっていました。あと必要なのは、1.等しい場合、A列~F列の値をK列からP列にそれぞれ転記する2.1行に対して行った処理を、入力されているすべての行に対して繰り返すという処理ですね!さて、今Excelのシート上では、上の画像のような配置になっていると思います。担当者名が抽出対象と同じであれば、A列の値をK列の値に代入すれば良いことになりますね。A2セルの値をK2セルに代入するコードはすぐに思いつきますか?Cells(2,11).Value = Cell
0
カバー画像

[VBA解説]For文でループ処理を書こう![#6]

前回はこちら今回の記事で、プログラミングのメイン(と僕が思っている)内容の基礎は終了です。「ここまでの内容も少し怪しい…」という人も、一旦ここまで通して読みつつコードも書いてみて、何となくで良いのでイメージを掴んでいって下さい。For文の書き方早速ですが、For文を使ったマクロのサンプルが以下の通りです。Sub For文を試す()     Dim colLong As Long     For colLong = 1 To 10         Cells(10, colLong).Value = colLong     Next End SubcolLongは変数です。For colLong = 1 To 10Nextの部分が今回のメインですね。日本語で説明すると、For colLong = 1 To 10は「colLongは1から始まって、10まで以下の処理を行う」という意味です。そしてNextが「次へ」ですね。どういうことかと言うと、最初はcolLongが1の状態で、Cells(10, colLong).Value = colLong の処理が行われます。そしてNextに進むと、「colLongが2の状態で」Cells(10, colLong).Value = colLong の処理が行われます。それをcolLongが10になるまで繰り返し、11になるとNextより下の処理に進みます。(今回の場合、End Subで終了です)つまり、ForとNextの間の処理を何度も通るんですね。その繰り返す範囲を、For 変数=最初の値 To 最後の値という書き方で表現します
0
カバー画像

前任者のExcelマクロが動かない…よくある原因と対処法

前任者が作ったExcelマクロが、急に動かなくなった経験はありませんか?・エラーが出て止まる ・そもそも何をしているのか分からない ・直したいけど触るのが怖い 現場ではよくあるトラブルです。 実際、Excelマクロは「作った人にしか分からない状態」になりやすく、 担当者が変わると使えなくなるケースが多いです。 では、なぜ動かなくなるのか。 よくある原因は大きく5つあります。 ① ファイルの保存場所が変わっている ② 参照しているシート名・ファイル名が変わっている ③ Excelのバージョン違い ④ マクロのセキュリティ設定 ⑤ コード自体のエラーや仕様の不整合 特に多いのは、「ファイル構成が変わったことで動かなくなるケース」です。 小さな変更でもマクロは止まることがあります例えば、 ・保存場所を移動した ・ファイル名を変えた ・列の順番を変えた こうした小さな変更でも、 マクロは簡単に動かなくなります。 無理に触る前に確認したいことただ、無理に触ってしまうと、 元に戻せなくなることもあるため注意が必要です。 このような場合は、 ・今のマクロが何をしているのかを整理 ・エラーの原因を特定 ・現場で使いやすい形に修正 という流れで対応していくのが安全です。 私自身、製造業の現場で長く業務改善をしてきた中で、 こうした「前任者マクロ」の修正対応を多く行ってきました。 その場しのぎではなく、 次の担当者でも使える状態に整えることを重視しています。 もし今、 ・マクロが動かなくて困っている ・内容が分からず手が出せない ・作
0
カバー画像

VBAによるExcel業務の自動化:効率と生産性の向上

はじめにExcelはビジネスの世界で広く使用されているツールですが、VBA(Visual Basic for Applications)を使用することで、これらの作業を自動化し、効率を大幅に向上させることができます。この記事では、VBAを用いたExcel業務の自動化事例を紹介し、そのメリットと実装方法について解説します。VBAとは?VBAは、Microsoft Office製品をプログラミングによって制御するための言語です。Excel内のデータ処理、計算、チャート作成など、繰り返し行う作業を自動化するために広く使用されています。自動化事例1: 日報作成の自動化多くの企業では日報の作成が日常的な業務です。VBAを使用すると、特定のフォーマットに沿った日報を自動で作成し、必要なデータを挿入することができます。実装方法テンプレートの作成: 日報の基本的なフォーマットをExcelに作成します。データ入力自動化: VBAを使用して、日々のデータを自動的に日報テンプレートに入力します。レポートの生成: 完成した日報をPDF形式で自動保存するマクロを設定します。自動化事例2: 財務データの分析財務データの分析は複雑で時間がかかる作業ですが、VBAを使うことで、データの収集から分析、レポートの作成までを自動化できます。実装方法データ収集: VBAを用いて、外部データベースから必要な財務データをExcelに自動的にインポートします。データ処理: 財務データを分析用に整形し、計算を行います。レポート作成: 分析結果を基に、自動的にグラフや表を作成し、レポートとして出力します。まとめVBAを用いるこ
0
カバー画像

効率化を依頼する際の注意点

はじめまして!効率化が趣味の「あやせ」と申します。ココナラブログ初投稿です💦よろしくお願いします!今回は、効率化を依頼する時に何を出品者に伝えればいいのか?分からずに不安な方のために、伝えておくとスムーズに話が進む方法をお伝えします!1.困りごとを思いつく限り書き出すとりあえず、困っていることを沢山教えてください!困りごとが分かれば、それをどう効率化するかは考えてご提案いたします!もちろん、細かい仕様(このデータをこのフォーマットに自動集約してほしい等)が決まっているとすぐにご提案可能です。ですが、どう効率化できるか分からない。でも困っている。そう考えている人の方が多いと感じています。ですので、困りごとだけお伝えいただき、効率化する方法はプロに考えてもらいましょう。2.困りごとが思いつかない場合は、効率化したい作業の流れを書く困りごとを書いて、と言われてもそれも分からないから困っているんだ。そう思われる方もいらっしゃると思います。そんな時は、あなたの作業の流れを教えてください!作業の流れが分かれば、どの作業を効率化できるかご提案可能です!過去ご依頼頂いた方からも、その作業まで効率化できるのか。と驚かれることもありました。効率化について常に考えている為、驚きに繋がるようなご提案となることもあります。他にも出品者に伝えて頂けるとスムーズに進められる点はありますが、「困りごと」「作業の流れ」これらをお伝えいただければ、スムーズに進めやすくなりますので、意識してみてください。最後までご覧いただき、ありがとうございました。
0
カバー画像

【Excel VBA】クラスモジュールを利用して、Excelでイベントを一括管理する

YouTubeでも紹介しています。是非、ご覧ください。ACCESSで、クラスモジュールを利用して、イベントの一括管理を紹介しました。 今回は、Excelで、クラスモジュールを利用して、イベントの一括管理を、行います。 クラスモジュールを利用して、Excelでイベントを一括管理するこんにちは。伊川です。 以前、コンボボックスを利用しないで、連動した値を取得する方法を紹介しました。 コンボボックスを作成したほうが楽だとは思います。 しかし、配列の勉強もかねて、ユーザーフォームで作成しました。 下記の記事を参照してください。 クラスモジュールは、VBAにおいては、本来のクラスモジュールとは、違うということを、 ACCESSのクラスモジュールで紹介しました。 下記の記事を参照してください。 VBAでの、クラスモジュールは、イベントの一括管理と覚えてください。 また、ACCESSとでは、微妙に書き方が違いますので、是非、ACCESSのクラスモジュールと見比べてください。 このブログはこんな人にお勧め クラスモジュールを勉強している人 クラスモジュールの適当なサンプルがない人 クラスモジュールが、全然、理解できない人 このブログを、読み終わるころには・・・・ 私も、クラスモジュールが、なにか全然理解できませんでした。 しかし、コードを眺めることで、少しだけ理解できるようになりました。 単純なサンプルですが、是非、コード眺めて、理解するように努めてください。 Excelで、イベントの一括管理 ACCESSも、Excelも、イベントの一括管理は、WithEventsを利用します。 クラス
0
カバー画像

[VBA実践]ゴールと道のりを明確にしよう![#1]

前回までの記事で、VBAの「これだけは理解しておいてほしい」という内容の解説は終了しました。今回から、[VBA実践]シリーズとして、実際にVBAを書き、マクロを作り上げていく流れを体験していただきます!手順1.ゴールを決めるマクロを作ることで、様々なことが自動化出来ます。とはいえ、「何をするのか」が明確でなければ、何も作ることが出来ません。というわけで、「何をするのか」というゴールをまず決めます。普段お仕事をされている方であれば、「どんな業務が面倒か」「どんな業務に手間がかかっているか」を考え、「それを自動化する」ことをゴールにすると良いです。今回の例として、「売上をまとめているExcelの一覧から、担当者ごとの一覧を作成する業務の自動化」を考えてみます。以下の画像を見て下さい。どの担当者がどの商品をどのくらい売り上げたのか、というものが一つにまとまっていますね。これを「売上一覧」というシート名で作っておきます。ちなみに、商品情報は別のシートに以下のように作っておき、金額を参照するようにすると、より実践的ですね。この商品情報が載っているシートを「商品情報」というシート名にしておきます。これらのようなシートをまず準備してみてください。もちろん、数式などは適宜活用しましょう。(Noの欄や、売上一覧の単価、売上なんかは数式が活用出来ますね)今回は「売上一覧から担当者ごとの情報を抽出する」のがゴールなので、売上一覧シートの右側に以下を以下のようにしましょう。I1セルに抽出担当者名を入力し、「抽出」ボタンを押すと、全員の売上一覧から担当者分のみ、K~P列に転記される、というイメージですね
0
カバー画像

【現役SEが回答】大量のCSVを2000行ずつ分割!「切り貼り作業」はもう卒業しませんか?

「システムのアップロード制限が2000行まで……。手元のCSVは1万行もあるのに!」そんなとき、手作業でデータを範囲選択して、切り取って、別ファイルに貼り付けて……という作業を繰り返していませんか?実はこれ、単純に見えてとっても神経を使う作業です。現役SEとして、そして「1分1秒を惜しむ現場」を見てきた元教員として、この作業を「一瞬で、正確に」終わらせる方法を解説します。⚠️ 手作業での分割に潜むリスク「ただ分けるだけ」と思って作業を始めると、こんなトラブルが起きがちです。✅ 1行だけデータがズレてしまい、アップロードエラーになる✅ タイトル行(ヘッダー)を入れ忘れて、システムが読み込まない✅ どこまで作業したか分からなくなり、重複や漏れが出るせっかく効率化のためにシステムを導入しているのに、その準備作業でミスをしてしまっては本末転倒ですよね。✨ Excel VBAで「自動分割」するメリット私はこの「分割作業」こそ、Excel VBAの得意分野だと思っています。ツールを使うと、こんなことが可能になります。✅ 行数を指定するだけ2000行でも、1500行でも、好きな単位で一瞬で分割が完了します。✅ ヘッダーを自動で付与すべての分割ファイルに、1行目のタイトル行を自動で挿入します。✅ ファイル名も自動生成「元ファイル名_1.csv」のように、分かりやすい名前で指定フォルダに保存します。手作業で30分以上かかっていた「精神的に疲れる作業」が、ボタン一つで「0秒」になります。📈 現場に合わせた「分割」の選び方プロの視点からお伝えすると、分割の方法はいくつかあります。1️⃣ フリーソフト
0
カバー画像

Excel転記作業を自動化する方法|毎日のコピペ作業をなくす

Excelを使った業務では、データの転記作業を毎日行っている方も多いのではないでしょうか。例えば次のような作業です。・別のシートからデータをコピー・CSVファイルの内容をExcelに貼り付け・複数のExcelファイルからデータをまとめる・システムのデータをExcelに転記このような作業は一つ一つは簡単ですが、毎日続くと大きな負担になります。今回は、Excelの転記作業を自動化して業務を効率化する方法について紹介します。Excel業務でよくある転記作業Excelを使った業務では、データの転記が必要になる場面が多くあります。例えば次のようなケースです。・売上データを別シートへ転記・顧客データの一覧作成・複数ファイルのデータ統合・CSVデータの整理多くの場合、このような作業はコピー&ペーストで処理されています。しかしデータ量が増えると、転記作業だけでかなりの時間を使ってしまうことがあります。手作業の転記は時間とミスの原因になるExcelの転記作業を手作業で行うと、次のような問題が発生しやすくなります。・毎日同じ作業を繰り返す必要がある・データ量が増えると作業時間も増える・コピーや貼り付けミスが発生する・確認作業に時間がかかる例えば、毎日20分の転記作業がある場合でも、1か月では数時間の作業時間になります。このような単純作業は、自動化することで大きく効率化できます。Excelマクロを使えば転記作業を自動化できるExcelには「マクロ」という機能があり、作業を自動化することができます。マクロを使うことで、次のような作業を自動化できます。・データのコピー・指定シートへの貼り付け・データ整理
0
カバー画像

ExcelVBAの処理速度

Excelの処理速度って遅いなぁと思うことがありませんか。それはもしかするとパソコンの性能じゃないかもしれません。Excelって意外と軽いアプリケーションで、比較的低スペックのマシンでも快適に動くようにできています。それはユーザが作ったVBAも同様です。Excelで特に重い処理トップ3は①グラフィックの描画、②再計算、③セルの書き込み、これらはとても重くなります。連続で行うと一気に処理速度が低下する原因になります。それぞれ解決策はあって、基本的なことで行くと、①に関してはApplication.ScreenUpdatingをオフにすること、②に関しては自動再計算をオフにしたり、計算済みの値をセルに書き込むこと、③に関しては配列に値を設定しておいてまとめて書き込むことなどで処理時間を短縮できます。私の作成するマクロは高速処理が効率に直結する現場で実用されている物ですので、この基本は必ずクリアしている物を提供しております。マクロを作る側、作ってもらう側、双方が満足するマクロの要因の一つに処理速度はあると思いますので、皆さんに気にしていただきたいなと思います。
0
カバー画像

Excel VBA(マクロ)の定期実行、それできますよ?

閲覧ありがとうございます<(_ _)>ココナラでExcel VBA関連で出品しているさべろくと申します。早速本題です。Pythonでスクレイピングツール(Web上のデータを取得するツール)を作るかExcel VBAで作るかの判断で、「Excel VBAで作ったものは定期実行ができないが、PythonはできるからPythonで作る」という意見を聞いたので、Excel VBAでもできますよという記事を書こうかなと思いました。やり方は大きく分けると2通りかなと思います。※Windows環境について書きます。[1]. Excel VBA + タスクスケジューラで実行するこれは、Excel VBAのプログラムで「エクセルファイルが開かれたときにマクロが実行されて、実行が終わったらファイルを閉じる」という記述を書く方法です。具体的には、「ThisWorkbook」モジュールに「Workbook_open」というサブプロシージャを記述すればできます。開かれたら実行されるExcelを用意して、タスクスケジューラでエクセルファイルを決まった時間に開くだけです。[2]. VBScript(もしくはバッチファイル) + タスクスケジューラで実行するこれは、VBScriptなど外部ファイルでエクセルを開いて、マクロを実行して、閉じるという方法です。タスクスケジューラには、上記のVBScriptなどの外部ファイルをセットして実行するだけです。このように2つのやり方があります。おススメは[2]です。[1]はエクセルファイルを開いたときに自動でマクロが実行されて閉じるという処理が実行されるため、
0
カバー画像

【Excel VBA】色々なものをコレクションする

YoTubeでも解説しています。是非、ご覧ください。最近、クラスモジュールに、ハマっています。 クラスモジュールを利用する際に、collectionオブジェクトを利用することがあります。 そういえば、説明していなかったと思いました。 色々なものをコレクションするこんにちは。伊川です。 VBAを、勉強するにつれて、色々な技を身に着けてきます。 すると、だんだん、一括処理と、コードを短くするということが、楽しくなってきます。 行きつくのは、配列等になるのでしょう。 その中でも、Collecitonオブジェクトに、最近触れることが多いです。 ここを説明しないと、クラスモジュールの説明の際に、いきなり、Collecitonが登場しますので、今回、説明をしようと思います。 連想配列的な側面もありますが、連想配列ほど、難しくないです。 このブログはこんな人にお勧めVBAの勉強が好きな人 効率的をしたい人 コードを短くしたい人 このブログを、読み終わるころには・・・・Collecitonオブジェクトは、クラスモジュールに似ているとおもうはずです。 多分、クラスと、Collecitonオブジェクトを組合わせるともっと便利になると思います。 CollecitonCollectionオブジェクトとは項目(item)とキー(key)をセットで格納するオブジェクトのことです。 Collectionオブジェクトの要素には数値、文字列からオブジェクトまで格納することができます。 要素ごとに数値や文字列などデータ型が異なる場合でも1つのコレクションとしてまとめておくことができます。 ただし、キーを重複させる
0
カバー画像

マクロのメリット3選!(エクセル/VBA/プログラミング)

【まずは結論】マクロのメリット4つ ① 時短になる! ② ミスが減る! ③ プログラミングが学べる! それぞれ簡単にご紹介します。 ①時短になる! マクロを使えば、手作業でのエクセル編集をボタン一つで終わらせることができます。 1時間かかっていた作業が数秒で完了できることもザラです(体験談)。 皆さん普段エクセル編集にどのくらい時間を割いていますか?それを一瞬で終わらせることができれば・・いつもより早く帰れるようになったり、別の仕事に力を注げるようになったり、プライベートをより充実できたり! 時間の余裕は心の余裕です。もし毎日に余裕がないと感じている方がいたら、一度マクロに頼ってみてはいかがでしょうか。 ② ミスが減る! マクロは、プログラミングで指示された通りのエクセル編集を一切の狂いなく行うことができます。そのため基本的にミスが生じることはありません。 人間の手作業だと必ずミスが生じるものです。特にエクセル編集は緻密な作業、ミスが起きやすいです。 私は以前、上司や先輩に提示する資料にミスが多く、指摘されたり怒られたりした経験が数えきれないほどあります。そのたびにメンタルdownでモチベ底辺になりました笑。 資料作成にマクロを導入してから、ミスがほぼゼロになりました。私のようにメンタルが弱く怒られたら尋常じゃなく凹んでしまう方は、マクロでミス減がおススメです! ③ ハードル低くプログラミングが学べる! そもそもマクロとは、VBAというプログラミング言語を用いたコードで指示を出し、エクセルを意のままに動かし業務改善することの総称です。 つまり「マクロを学ぶ=VBAプログラミング
0
カバー画像

【VLOOKUP不要】2つのExcel・CSVデータを一瞬で突合・照合する方法

「Aのリストにはあるのに、Bのリストには載っていない…」「金額が一致しているか、1行ずつ確認するのが辛い…」大量のデータを扱う業務で、2つのファイルを突き合わせて「差分」や「一致」を確認する作業は、想像以上に神経を使います。。今回は、そんな「データ突合(とつごう)」のイライラを解消したお話です。■ 業務を止める「VLOOKUPの限界」データの照合といえばVLOOKUP関数が定番ですが、実務ではこんな壁にぶつかりがちです。・「頭0」が消えていて一致しない得意先コードなどの先頭にある「0」が片方だけ消えているせいで、同じデータなのにエラー(#N/A)になる。・列の挿入で位置がずれる途中で列を足したり消したりすると、数式の参照先が壊れてしまい、正しい値を持ってこなくなる。・そもそもVLOOKUPが使えないデータが数万行あるとExcelが重くて固まったり、ファイル形式が違って関数を組むのさえ一苦労。結局、最後は「目視」で確認することになり、結果として半日かかってしまった…というケースも少なくありません。■ なぜミスが起きてしまうのか?人の目によるチェックには限界があります。・スクロールしている間に1行見飛ばした・似たような数字を「同じ」だと思い込んだ・数式の設定ミスに気づかず、間違った結果を信じてしまったこうした小さなミスが、後の請求漏れや在庫の不一致という大きなトラブルに繋がります。■ 対策方法正確かつ高速にデータを照合するには、Excelの標準機能だけでなく、専用の「照合ツール」を使うのが一番の近道です。① 比較したい2つのファイルを指定する② どの項目(キー)で比較するか選ぶ③
0
カバー画像

【現役SEが回答】Excel VBAとGAS、結局どっちが良いの?自動化の選び方をプロが解説

「今の業務を自動化したいけれど、Excelのマクロ(VBA)で作るべき?それとも最近よく聞くGoogle Apps Script(GAS)が良いの?」実は、どちらが優れているかではなく、「どんな環境で、誰と使いたいか」で正解は変わります。今回は現役SEの視点から、その違いを分かりやすく解説します!💻💻 Excel VBAがおすすめなケース膨大な計算をPC1台で完結させたい: 数万行におよぶ複雑な計算は、PCのメモリを直接使うVBAの方が高速です。既存のExcelファイルをそのまま活用したい: 今まで使ってきたフォーマットを崩さず、ボタン一つで集計したい場合に最適です。オフライン・機密データ: クラウドにデータを上げたくない、社内限定の作業に向いています。☁️ Google Apps Script(GAS)がおすすめなケースチームでリアルタイムに共有したい: スプレッドシートなら、全員が同時に開きながら自動集計が可能です。Googleサービスと連携したい: 「フォームの回答を自動でカレンダーに登録」「Gmailで一斉送信」などはGASの得意分野です。場所を選ばず作業したい: ブラウザさえあれば動くので、スマホや外出先からも実行できます。✅ 現役SEが実践する「最適解」の出し方「自分の業務にはどっちが合うのか分からない…」という方は、無理に決める必要はありません。私は現役SEとして、お客様の環境(OS、ツールの利用状況、共有範囲)をヒアリングし、「最もコストがかからず、効果が高い方法」をプロの視点でご提案します。🚀 迷ったら「無料診断」から始めましょう「自動化したいけど、具体的にど
0
カバー画像

【コピペは卒業】大量のCSVを1つにまとめるには?現役SEが教える「ミスゼロ・最短」の統合術

「100個あるCSVファイルを、1つずつ開いてコピー&ペーストしている…」「まとめた後に、項目がズレていないか1行ずつチェックするのが苦痛…」月次報告や在庫管理などで発生する「CSVの結合作業」。数が増えれば増えるほど、手作業ではミスが起きやすく、時間も奪われてしまいます。⚠️今日は、現役SEの私が実践している、効率的でミスのない統合術を解説します!🚀💻 なぜCSVの統合は「手作業」だと危険なのか?単純なコピペに見えて、実はCSVの結合には多くの罠が潜んでいます。ヘッダー(見出し)の混入: 全ファイルをコピペすると、データの途中に見出し行が何度も現れてしまいます。列の並び順の相違: ファイルによって列が1つズレているだけで、データが台無しになります。⚠️文字化けや「0落ち」: 前回の記事でも書いた通り、普通に開くとJANコードなどのデータが壊れるリスクがあります。✅ 複数CSVを一気にまとめる3つの方法1️⃣ Power Query(パワークエリ)を使う:Excelの標準機能です。「データ」タブ > 「データの取得」 > 「ファイルから」 > 「フォルダーから」を選択。フォルダ内のファイルを一括で読み込み、結合できます。✨2️⃣ コマンド(Windows)を使う:コマンドプロンプトで copy *.csv all_data.csv と打つ方法もありますが、見出しが重複して残るため、後処理が必要です。3️⃣ VBA(マクロ)で自動化する:「特定の項目だけを抽出したい」「ファイル名をデータとして追加したい」など、細かい要望がある場合はVBAが最強です。💻🚀 「ボタン1つ」で100フ
0
カバー画像

【Excelが重い!】1万行のデータでフリーズ…?現役SEが教える「軽快に動かす」ための4つの秘策

「データが増えてから、ファイルを開くたびにクルクル回って動かない…」「1万行を超えたあたりから、セルの入力だけで数秒待たされる…」業務で扱うデータが増えてくると、必ずぶつかるのがExcelの動作遅延です。実は、ちょっとした「プロのコツ」を知っているだけで、そのExcelは見違えるほど軽くなります!🚀💻 なぜ1万行でExcelは重くなるのか?Excelが重くなる主な原因は、実は「行数」そのものよりも、「裏側で動いている過剰な計算」にあります。⚠️・揮発性関数の使いすぎ: OFFSETやINDIRECTなどを多用すると、どこか一箇所変えるたびに全データが再計算されます。・条件付き書式の重複: コピペを繰り返すと、見えないところで書式ルールが何百個も重なり、描画を重くします。・VLOOKUPの乱用: 1万行に対して複雑な検索を繰り返すと、PCのメモリを激しく消費します。✅ 現役SEが実践する「軽量化」の秘策1️⃣ 「計算方法」を手動に切り替える:[数式]タブ > [計算方法の設定] > [手動] に。入力中は計算を止め、最後に F9 キーで一括計算させるだけでストレスが激減します。2️⃣ 数式を「値」に置き換える:計算が終わった過去のデータなどは、コピーして「値として貼り付け」を行い、数式を消去してしまいましょう。3️⃣ テーブル機能の活用:範囲を「テーブル」に変換することで、必要な範囲だけを効率よく処理できるようになります。4️⃣ VBA(マクロ)での一括処理:「重い関数」を「マクロの計算」に置き換えるのが、最も根本的な解決策です。💻🚀 限界を感じたら「プロ仕様の自動化」へ「色々試
0
カバー画像

【Excelの罠】CSVを開くと「0」が消える?現役SEが教えるデータ崩れの原因と対策

業務でCSVファイルを扱っていて、こんな経験はありませんか?・JANコードや電話番号の先頭の「0」が消える・数字のはずが勝手に「日付」に変わる・商品コードが「1.23E+12」のような変な表記になる実はこれ、Excelの「親切すぎる自動判別」が原因で起きる、実務上の大きなトラブルです。⚠️💻 なぜデータが壊れるのか?(現役SEの視点)CSVは「データ形式」の情報を持たない、シンプルなテキストファイルです。そのため、Excelで開いた瞬間にExcel側が「これは数値だね」「これは日付だね」と勝手に判断してしまいます。例えば、01234 という社員コードがあった場合、Excelは「数値に先頭の0はいらない」と判断し、1234 に書き換えてしまいます。一度書き換わって保存されると、元のデータは失われてしまいます。 これは業務システムを運用する上で、非常に危険な状態です。🔍 特によくあるトラブル例・JANコード・商品コード: 桁数が変わってしまい、システム連携でエラーになる。・郵便番号・社員コード: 先頭の「0」が落ちて、正しく検索できなくなる。・データのズレ: カンマやタブといった「区切り文字」が正しく認識されず、1つのセルにデータが固まってしまう。✅ プロが教える対策方法1️⃣ Excelの「データインポート」を使う: 読み込み時に列を「テキスト型」に指定することで、自動変換を強制停止できます。2️⃣ 適切な「区切り文字」を選択する: カンマ、タブ、セミコロンなど、元のデータの仕様に合わせて正しく指定することで、データのズレを防ぎます。3️⃣ PowerQueryを活用する: デー
0
カバー画像

Excel Searcher使用方法

ココナラコンテンツマーケットにて、汎用的に使用できるExcelマクロツールである、Excel Searcherを販売開始しました。https://coconala.com/contents_market/pictures/cmgrp9sej00nf5l0i7qmohjztコンテンツマーケットの説明文では文字数や画像の数の制限が強すぎたので、いったんこちらで簡単な使用方法を書いておきます。(ゆくゆくは動画にしてYouTubeで投稿します)1. Excel Searcherを購入してダウンロードコンテンツマーケットから購入してください。2. ダウンロードしたマクロブックのプロパティを開き、マクロを有効にする。おそらくデフォルトではネットからダウンロードしたマクロ有効ブックはそのまま開いてもマクロが無効化されるため、まずはプロパティから設定を変更してください。3. Excel Searcherを開く4. Sheet1にあるボタンを押下する以下のように「検索フォーム表示ボタン」だけが配置されているので、押下してください5. 検索フォームに検索条件を入力する上記のように、検索フォルダや検索対象とするファイル名、検索キーワードなどを入力するフォームが開きます。※セルの内容だけでなく、図形内のテキストやメモ、コメントも検索対象とするためにVBAで実装した関係上、処理速度はそこまで速くないため、出来るだけ検索対象のファイル数を絞り込むためにも除外フォルダ名/ファイル名、検索期間などを指定して検索することをお勧めします。6. 「検索」ボタンを押下する検索条件入力後に検索ボタンを押下すると、検索処
0
カバー画像

複数行からなる表を上下させるVBA

エクセルで表を作る際、ひとつの項目を複数行で表すこともあります。 もし、その項目を上や下へ移動したいと思ったときは、 ①複数行を選択し、②切り取り、③挿入行を選択し、④切り取ったセルの挿入 で行うことは可能ですが、これらの手順をワンクリックで行うVBAをご紹介します。
0
カバー画像

ソースコードはかく語りき

最近の言い方で言うと、・君のソースコードがささやいている・ソースコードは君に語りかけるとかでしょうか。画像は、Image Creator 提供 DALL·E 3です。ExcelVBAやGAS(Google Apps Script)の作成支援、修正などを行っていますと、これまで使っていて、動かなくなったものや、今はもう使われなくなったコードを目にすることがよくあります。今でこそ機能していませんが、かつては動いていた。もしくは動かそうと努力した後が垣間見えます。・ああ、これは令和対応をしたんだな・祝日対応しようとして諦めたんだな・あと一歩なんだけどなかつてこのファイルに触れたことのある人が、努力し、研鑽し、切磋琢磨した後が痕跡として残っています。多分消しても動作に影響はないんだけど、いつか使うかもしれないから残しておくか。そういう気持ちで今に至るコードたちです。こういうところから新しいアイディアが生まれたり勉強になることも少なくないので、私も無駄だからとバッサリ切らずに残しておくことが多いです。そして、本当にまれにですが、なぜか変更すると思うとおりに動作しなくなる箇所があったりします。どう考えても使われていないように見えて、実際には使われているケース。神社やお寺、お地蔵さまや鳥居みたいですね。最近はAIもコードを作成しますので、それも残すともうごちゃごちゃして本当に読める人でないとメンテナンスもできない状態に。ソースコードをAIに渡してきれいにしてくれる時代も来ますかね。
0
カバー画像

プログラミングを学ぶ姿勢について

先日、Excel処理の自動化に興味を持たれた職場の方がVBAマクロを勉強してみようと思い、書店で関連図書を見て回ったそうです。その際、たくさんの参考書を見ている中でとても分厚いものがあり、威圧感のようなものを感じて勉強するのをためらってしまいそうになったそうです。プログラミングそのものを学ぶことと言語を学ぶことを別に考えるVBAマクロを組むとして、参考文献を見ると英文混じりの数式みたいなものがごっそり書いてあり、聞き慣れない言葉で解説文が載っているというだけで初心者としてはストレスがたまると思います。実際は使用されている構文というのは数えるほどのパターンしかなく、そのパターンを目的に合わせて組み合わせており、構文の文法は各プログラミング言語で定められた型に準じて表記されています。ここでいう構文とは目的を達成するための論理的な処理の構造のようなものです。プログラミング言語がどのようなものであれ、構文構造はあまり違いがないので、ある言語で処理を書けるようになれば、他の言語の処理も書けるようになるのは簡単だと思います。プログラミングとは処理の順序や手立てを組み立てること「運動会のプログラム」のようなものを見たことがあるでしょうか?選手入場、開会式、個別競技、と、さまざまな催しが書いてあり、それらは一般的に時系列で書かれていると思います。実際には、各催しと催しの間に準備や片付けがあったり、催しの中で手順が決まっていて、それらは「運動会のプログラム」には記載してありません。そのへんの細かいことは予行演習で打ち合わせてしまうことでしょう。プログラミングの場合も、まず処理の目的と手順をざっく
0
カバー画像

シート違いの同じマクロ名を見分ける方法

マクロ付きのシートをコピーして使用するときに、うまくボタンにマクロが登録されていない時の設定方法です。開発タブ>Visual Basic赤枠内を確認していただくと、シート名が記載されていることがわかります。登録したいマクロボタンを右クリック>マクロの登録をクリック対象のシートのマクロを選択し、「OK」をクリック以上になります。どなたかの助けになれば嬉しいです。
0
カバー画像

[VBA実践]RangeとCellsを組み合わせよう![#3]

前回の記事はこちら前回の記事で、・抽出担当者のデータのみを抜き出して転記するという、マクロのメイン機能は作成完了しました。ただ、まだまだ改良の余地はあります。今回の記事を通して、RangeとCellsを組み合わせ、前回書いた記事をもう少しスマートにしてみましょう。前回書いた記事は以下の通りですね。Sub 担当者ごと抽出()     Dim targetName As String     Dim rowLong As Long     Dim exRowLong As Long     targetName = Cells(1, 9).Value     exRowLong = 2     For rowLong = 2 To 16         If Cells(rowLong, 6).Value = targetName Then             '一緒だった時の処理             Debug.Print "担当者名が" & targetName & "と同じです!"             Cells(exRowLong, 11).Value = Cells(rowLong, 1).Value             Cells(exRowLong, 12).Value = Cells(rowLong, 2).Value             Cells(exRowLong, 13).Value = Cells(rowLong, 3).Value             Cells(exRowLong, 14).Value = Cel
0
カバー画像

[VBA解説]プログラムに計算させよう![#2]

前回の記事はこちらボタンからマクロを呼び出そう!さて、前回の記事では初めてのマクロを作成してみました。指定したセルに値を代入するマクロでしたね。セルの指定の仕方は思い出せますか?「=」は「右のものを左に代入する」という意味でしたよね?数字を使う場合と文字を使う場合で、ちょっと気を付けることもありましたよね?うろ覚えな方はぜひもう一度前回の内容もおさらいしつつ進めましょう!まず、前回作成したマクロは、VBE上からF5キーで実行していましたよね。ただ、実際に使うマクロは、Excelシート上からボタンを押して実行するイメージな方が多いのではないでしょうか。というわけで、まずはボタンを設置して、そのボタンからマクロを実行してみましょう!前回保存した、マクロ有効ブックを開き、リボンの「開発」をクリックして下さい。「開発」の中に、「挿入」という項目があり、それをクリックすると「フォームコントロール」というものが出てきます。その一番左上に四角のアイコンがあると思うので、それをクリックして下さい。それだけでは何も起こりませんが、その状態でExcelシートのセルを、どこでも良いのでクリックしてください。すると、こんな画面が出てきますね。ここで、作成した「セルに値を代入」を選択し、OKをクリックしてください。こうすることで、ボタンにマクロを登録できます。すると、クリックしたあたりにボタンが配置されます。このボタンを押すと、登録した「セルに値を代入」マクロが実行される、というわけです。ちなみにボタンにマクロを登録し、その後マクロの処理を書き換えてからボタンを押すと、「書き換えたあとの処理」が実行され
0
カバー画像

まずは自己紹介します!【マクロ/エクセル/VBA】

はじめまして、マクロウと申します。 私は某製薬会社で働いており、営業活動の傍ら、エクセルを使用しデータ分析・集計・整理、業務管理等を行っております。 実は入社当初、エクセルが苦手でした。 エクセル編集は時間がかかり、作業が終わらず本分の営業にも支障が出る・・ちょっと手順を間違えたら作業のやり直し、ストレスもかかる・・正直苦痛で仕方なかったです笑。 なので「エクセルが大っ嫌い!」という人の気持ちがとても良くわかります。 そんな中マクロに出会い私の人生は一変しました。いつも1時間かかっていた作業が一瞬で終わる!!魔法のようでした。この感動を皆さんにも感じて頂きたい! 現在はマクロで様々な作業を自動化し、年間数百時間という単位で効率化に繋げています。  また、マクロ技能を測る資格である“Excel VBA エキスパート スタンダード”を取得しました。 ありがたいことに社内でも「マクロが組める奴」「エクセルが得意な奴」という位置づけとなりました。同僚からマクロ作成依頼を受け、その延長でエクセルの社内レクチャーを行った経験もございます。 これまでこれといった得意なことのない凡庸な人間だったので、「マクロが組める奴」というポジションで他者に頼られるようになったことが非常にうれしかったです笑 ココナラでも「マクロが組める奴」として皆様に頼られる存在になれるよう日々精進します。
0
カバー画像

【Excel VBA】シートの存在チェック③

前回に続き、シートの存在を確認する関数の話です。これまで、関数を2回修正してきて、機能としては向上しているものの、引数が増えたことで利便性が低下した話をしました。今回は、その問題を解消していきます。以下にコードを示します。【コード】 -------------------------------------------------------------------------------Function GetShtIndex(ByVal key As String, Optional ByRef wb As Variant, Optional ByVal match As String = "完全") As Long     Dim i As Long     '====参照判定===='     If IsMissing(wb) Then         Set wb = ThisWorkbook     End If     '====エラー判定===='     'キーワードが空白     If key = "" Then         GetShtIndex = -1         Exit Function     End If     '引数がWorkbook型でない     If TypeName(wb) <> "Workbook" Then         GetShtIndex = -1         Exit Function     End If     '====シート番号取得===='     For
0
カバー画像

【VBAコード無料公開】Excelの2データ自動照合マクロ!不一致セルを瞬時に「赤色」判定して目視チェックをゼロにする方法

毎日、Excelで「AのリストとBのリスト、数値の違いはどこだろう…」と目視で1行ずつ見比べていませんか??どれだけ気をつけても、人の目で行うチェックには限界がありますし、何よりも目が疲れてストレスが溜まりますよね。。。今回は、そんな不毛な「データ照合作業」を一瞬で終わらせる、実務特化のExcelマクロ(VBA)コードを無料で丸ごと公開します!!コピペするだけで、2つのシート(または列)を高速比較し、一致しなかったセルだけを自動で「赤色」にします。ぜひあなたの仕事に役立ててください!■ コピペで使える!データ自動照合マクロコードを特別公開!以下のコードを、ExcelのVBAエディタ(Alt + F11)に貼り付けてご使用ください。※データ前後のスペース(空白)を自動で除去して判定する機能付きです。↓↓以下、特別公開コード↓↓Sub CompareSheets_30Rows()     Dim wsA As Worksheet     Dim wsB As Worksheet     Dim r As Long     Dim c As Long     Dim diffCount As Long     ' 画面更新を停止して処理速度を極限まで高める(ユーザーを待たせないプロの1行)     Application.ScreenUpdating = False     ' 1. エラーハンドリング(シート名が存在しない場合のバグを徹底回避)     On Error Resume Next     Set wsA = ThisWorkbook.She
0
カバー画像

電子印鑑の画像化で挫折? Excelで印影を一括・自動生成した話

ペーパーレス化が進む昨今でも、「やっぱり見積書や請求書にはハンコがないと…」と言われること、ありませんか?今回は、私が社内で実際に直面した「電子印鑑トラブル」と、それを解決するために作ったツールのお話をします。💡 きっかけは「見積書作成ツール」の開発でした以前、社内の業務改善のために「見積書を自動作成するツール」を作ったときのことです。自動化自体はうまくいったのですが、現場から「電子でもいいから印鑑がついていないと格好がつかない」という要望が出ました。そこで、社員全員分の印影画像をあらかじめマスタに登録しておき、見積書アプリから自動で呼び出す仕組みにすることにしました。しかし、ここで大きな壁にぶつかりました。「全員分の印影画像、どうやって用意するの?」という問題です。📝 印影画像を用意する3つの方法と挫折方法① 画像編集ソフトで1個ずつ作る最初は手作業で作り始めましたが、文字のバランスを調整したり画像を切り抜いたりする作業が手間で、2人目で「これは無理だ」と挫折しました。方法② Webの無料作成ツールを使うネット上には便利なハンコ作成サイトがあります。しかし、社員の苗字とはいえ「個人情報」を外部の無料サイトに入力するのは、社内のセキュリティ規定的に少し不安がありました。方法③ もう自分で作ってしまおう!手作業もダメ、外部ツールもダメなら、安全な社内環境(Excel)で自動生成するしかない、となって作成したのが今回のツールです。✨ Excelで作った「印鑑画像自動作成ツール」のこだわりExcelのリストに名前(4文字まで)を入力してボタンを押すだけで、指定したフォルダに「透過PN
0
カバー画像

【現役SEが解決】固定長TXTが扱いにくい?CSVへ一瞬で変換してExcelで使う方法

業務で得意先様のフォーマットや、昔から使っている基幹システムのデータを取り出す際、「固定長テキスト(TXT)」という形式に出会うことはありませんか?・メモ帳で開くと文字がびっしり詰まっていて読めない・Excelで開こうとしても列がバラバラになってしまう・手作業で区切ろうとすると、1文字ズレただけでデータが台無しになる実はこれ、データの「区切り方」に特有のルールがあることが原因です。💡 なぜ固定長TXTはExcelで扱いにくいのか?CSVは「,(カンマ)」でデータが区切られていますが、固定長テキストには区切り文字がありません。代わりに「1文字目から10文字目までは商品名」「11文字目から20文字目までは金額」というように、文字の数(長さ)でデータの場所が決まっています。これをそのままExcelで開くと、00120260312アイワークスサマ00015000のように、すべての項目が1つのセルに繋がって表示されてしまいます。⚠️ 現場で起きやすいトラブル固定長データの扱いで特に神経を使うのが次のようなケースです。・振込データの確認(全銀ファイルなど)・古いシステムからの在庫データ抽出・顧客名簿のインポート「どこまでが名前で、どこからが数字か」をいちいち数えて列を分ける作業は、数行ならまだしも、数百、数千行となると気が遠くなる作業です。🛠️ 対策方法いくつか効率化の方法があります。1⃣ Excelの「テキストファイルウィザード」で固定長指定をする2⃣ Pythonなどのプログラムで文字数カット処理を行う3⃣ 専用の変換ツールを導入するただし、Excelの標準機能では毎回「ここからここま
0
カバー画像

eBay輸出、3週間コンサルティングを開始いたしました!

ebay輸出をサポート致します。3週間のコンサルティングです。 当サービスでは、画面共有を利用してわかりやすく出品作業をサポート致します。商品の輸出に関してのお悩みを解決するため、私が提供するサービスをご利用ください。 <サービスの特徴> ・画面共有による出品作業サポート実際に出品作業を行いながら、ご自身でも操作ができるようにご指導いたします。疑問や不安な点があれば、いつでも質問いただけます。 ・最大10回までのビデオチャットによる画面共有サポート(60分) ・回数無制限のテキストチャットによるサポート (24時間以内にご返信いたします)。 お気軽にお問い合わせください。
0
カバー画像

パソコンを使った仕事、何でもやります

ITシステムエンジニアとしてWindowsが登場する前からパソコンを使ったシステム開発をしています。当時はマイコン(マイコンピューター)なんて呼んでいたこともあります。ご存じでしたか?SNS運用代行の他、パソコン業務の自動化が得意です。ExcelマクロやRPAの作成承ります。是非お声がけください。
0
カバー画像

[VBA解説]IF文を理解しよう![#5]

前回の記事はこちらIF文の使い方さて、前回予告した通り、今回はIF文という少しこれまでと違う要素を解説します。具体的にどう違うかと言うと、これまでに解説した内容は、1行で完結していた内容ばかりでした。例えば、Range("A1").Value = 10であれば、A1セルに10という値を代入する、という意味でしたし、Dim cost As Longであれば、costというLong型の変数を使うよ、という意味でした。これから解説するIF文は、複数の行に影響があります。ちなみに、「IF」は「もし~なら」という英単語ですね。VBAでもその意味は変わりません。それを踏まえて、次のコードに一度目を通してみて下さい。Sub IF文を試す()     Dim targetValue As Long     targetValue = Cells(5, 1).Value     If targetValue > 60 Then         Cells(5, 2).Value = "合格"     Else         Cells(5, 2).Value = "不合格"     End If End SubtargetValueはLong型の変数ですね。今回大事なのは、「If」「Then」「Else」「End If」の4つです。今回「IF文」という説明をしましたが、実際にはこのように、If、Then、Else、End Ifの4つがセットで出てくることがほとんどです。ちなみに「>」は「右より左の方が大きい」という意味です。算数で習う通りですね。If targetValue &gt
0
カバー画像

[VBA解説]セルのもう一つの指定方法[#4]

前回の記事はこちら前回の問題の解説さて、前回の問題は解けましたでしょうか。ちなみに修正前は以下のようなコードでした。Sub あいさつを入力する謎マクロ()     Dim あいさつ As String     あいさつ = おはよう     Range("C1").Value = あいさつ End Subこれを修正すると、こうなります。 Sub あいさつを入力する謎マクロ()     Dim あいさつ As String     あいさつ = "おはよう"     Range("C1").Value = あいさつ End Sub「あいさつ」という変数に、「おはよう」という文字列を代入したいので、「おはよう」が文字であることを示すために、""で囲う必要がある、というものでした。最初は""で囲うのに慣れないかもしれませんが、忘れないようにしましょうね。というわけで、今回のメインの内容に移ります!Rangeは「セル」という意味ではないさて、皆さんに謝らなければいけないことがあります。「Rangeはセルという意味だよ」と言ってきましたが、嘘です。厳密には、「Rangeは範囲」です。(ただ日本語訳しただけですが)どういうことかと言うと、Rangeはセル一つを指定するために使われるのではなく、「複数のセルの集まり(つまり範囲)を指定出来るもの」なんです。例えば、A1セルからA3セルを指定したければ、Range("A1:A3")と書くことで、複数のセル範囲を指定出来ます。では、VBAで「セル」を意味する単語は何かと言えば、Cellsなんですね。そして、Cellsを使ってA2セ
0
カバー画像

[VBA解説]変数とデータ型を理解しよう![#3]

前回の記事はこちら変数・データ型とは前回の記事で、セルに入力されている値を計算式に組み込む方法を紹介しました。(例)Range("A3").Value = Range("A1").Value * Range("A2").Valueただ、こんな風に何度もRange("").Valueを書くのは大変ですよね。そんな時に使うのが、「変数」というものです。実際に書くと以下の通りです。Sub 合計金額計算()    Dim cost As Long    Dim quantity As Long    cost = Range("A1").Value    quantity = Range("A2").Value    Range("A3").Value = cost * quantityEnd Sub※実行する時は、A1セルとA2セルに数字を入力しておいて下さいね。数字ではなく文字を入力すると…?少し見た目が変わりましたね。この記事の最初に出した例とやっている事自体は同じなのですが、より分かりやすく書くとこんな形になります。一つひとつ説明していきますね。まず、Dim cost As Longの部分。「Dim」は「これは変数ですよ」という意味になります。変数を「定義する」もしくは「宣言する」という言い方をします。その後の「cost」が、「変数名」です。今回は金額を計算するマクロをイメージしたので、「cost」としました。もう一つの「quantity」は「個数」の意味です。変数名は自由に決められますが、数字から始めることは出来ないなどのいくつかの決まりはあります。そしてそのあとの「As L
0
カバー画像

[VBA解説]VBAを書いてみよう![#1]

前回の記事はこちらVBEを起動するさて、VBAを書く前に。前回までの記事で、少しずつ「VBA」や「マクロ」、「VBE」などの言葉と解説が出てきましたね。それぞれどんなものか、今から30秒ほど頭の中で思い出してみてください。VBAとは?マクロとは?VBEとは?こんな感じで、新しいことを学ぶと必ず「モノの名前」を覚える必要が出てきます。必ず一度で覚える必要は無いですが、「これってどういうものだっけ?」と、「思い出す努力」はこまめにしていくことをオススメします。何度も思い出すうちに、スムーズに名前とその意味が一致してきます。そうなるとさらに新しく覚えることもどんどん吸収していけますので、意識的に思い出す時間は作りましょう。話が逸れましたが、いよいよVBAを書いてみましょう!まず、Excelファイルを開いて、VBEを開いてください。この画面がVBEでしたね。(Excelファイルの開発タブからVisual Basicをクリックすると開けますよ)ちなみにVBEとは、Visual Basic Editorの略です。プログラミング言語を書いてプログラムを作成するのに使うソフトのことを「エディタ」と呼びます。つまりVBEはVBA専用のエディタです。VBEを開いたら、上画像の赤枠部分をクリックしてください。すると上図のように、フォルダのようなアイコンのものが出てくるので、さらに赤枠部分をクリックしてください。今度はSheet1や、ThisWorkbookというものが出てきましたね。これから書くものは、基本的に「ThisWorkbook」の方に書いていきますので、ThisWorkbookの方をクリッ
0
カバー画像

【Excel VBA】シートの存在チェック①

Excel VBAにおいて、ブックの中に処理したいシートが存在するか否か、事前に確認することは非常に重要になります。シートの存在チェックには、for文を使用することが多いですが、ここでは代表的な2つの記述方法を紹介します。① For Eachを使用する方法Function ExistSheet(ByVal key As String) As Boolean     Dim ws As Worksheet     For Each ws In ThisWorkbook.Sheets         If ws.Name = key Then             ExistSheet = True             Exit Function         End If     Next ws     ExistSheet = False End Function② Sheets.Countを使用する方法Function ExistSheet(ByVal key As String) As Boolean     Dim i As Long     For i = 1 To ThisWorkbook.Sheets.Count Step 1         If ThisWorkbook.Sheets(i).Name = key Then             ExistSheet = True             Exit Function         End If     Next i     ExistSheet =
0
カバー画像

Excel作業を10秒にする方法|毎日のルーティン作業を自動化

Excelは多くの会社や個人事業主の業務で使われている便利なツールです。データ管理や集計、資料作成など、さまざまな業務に活用されています。しかし実際の業務では、Excelを使った作業の中に「毎日同じことを繰り返すルーティン作業」が多く含まれていることがあります。例えば次のような作業です。・データのコピー・並び替え・不要データの削除・データ整理・シートの管理このような作業は一つ一つは簡単ですが、毎日続くと意外と多くの時間を使ってしまいます。今回は、Excel作業を自動化して業務を効率化する方法について紹介します。Excel業務でよくあるルーティン作業Excelを使った業務では、毎日同じ作業を繰り返しているケースが多くあります。例えば次のような作業です。・データをコピーして貼り付ける・シートの並び替えを行う・不要な行を削除する・データを整理する・集計を行うこれらの作業は業務に必要ですが、手作業で行っていると時間がかかります。特にデータ量が増えるほど作業時間も増えてしまいます。毎日のExcel作業は意外と時間がかかる例えば次のような作業を毎日行っている場合があります。・CSVデータをExcelに取り込む・データの並び替え・不要データの削除・別シートへの転記このような作業は1回では数分でも、毎日続けると1日30分以上かかることもあります。さらに手作業の場合・コピー漏れ・入力ミス・削除ミスといった問題が発生することもあります。こうした単純作業を減らす方法として有効なのが、Excel作業の自動化です。Excelマクロを使えば作業を自動化できるExcelにはマクロ(VBA)という機能があり、
0
カバー画像

With…End With についての説明

 Withステートメントはコードをよりシンプルで読みやすくします。特定のオブジェクトに対して複数のプロパティやメソッドを繰り返し適用する時に便利です。これにより、同じオブジェクト名を何度も書く必要がなくなります。With ステートメントの基本的な使い方 基本的な構文は以下の通りです:With オブジェクト     .プロパティ1 = 値1    .プロパティ2 = 値2    .メソッド1()    ' その他のプロパティやメソッドEnd With例  特定のシート上のセル範囲のフォントや色を設定したい場合、以下のようにWithを使うことができます:With Worksheets("Sheet1").Range("A1:B2")    .Font.Bold = True    .Font.Color = RGB(255, 0, 0)    .Interior.Color = RGB(0, 255, 0)End With この例では、"Sheet1" の A1 から B2 までのセル範囲に対して、フォントを太字にし、文字色を赤、背景色を緑に設定しています。With ステートメントを使うことで、Worksheets("Sheet1").Range("A1:B2") を何度も繰り返し書く必要がなく、コードがすっきりとします。注意点1)With ブロックの中では、プロパティやメソッドの前にピリオド(.)を付けることを忘れないでください。(.)が、With に指定されたオブジェクトに対して適用されていることを示します。2)With ブロックを使用するとコードの読みやすさが向上しますが、過
0
カバー画像

chatGPT × Excel セル内容を喋らせる方法を聞いてみた

chatGPTにExcelに入力したセルを喋らせる方法について尋ねてみた結果面白いことができましたので、共有します。質問した内容は、「Excel VBAで面白く音声を読み上げさせる方法」を教えてとしました。結果として、以下のようなコードが返ってきました。やはりコードの作成が速いですね。ちなみにこのspeak機能2012年頃から搭載されたようですね。何か命令文の終わりを音声で知らせたり、意外と使い道がある方法かなと思いました。Sub SpeakText(text As String)     Dim speaker As SpVoice     Set speaker = New SpVoice     speaker.Speak text End Sub Sub Test()     SpeakText "こんにちは、私はExcel VBAです。" End Sub
0
カバー画像

Excel よくある質問

よくある質問なのですが、VBA で 以下のようなエラーがでるのですが、どうしたら良いですか と聞かれます。セルE5にコピーした別のセル内容を貼り付ける命令文を作るのに、誤 : workbook("1つめ").worksheets("まとめ").Range("E5").Pasteとやると少し足りません。正 : workbook("C:1つめ.xlsx").worksheets("まとめ").Range("E5").Pasteブックを指定する際は、しっかりとフルパスを指定しましょう!
0
カバー画像

プログラミングの基本的な事 その1 データ型

これまで幾つかオリジナルでのVBA作成依頼を扱ってきました。その中で気づいた点をいくつか書きたいと思います。オリジナルで依頼されるお客様は作業のシステム化に前向きでそれなりの知識を持っておられる方が多いように思われます。それでも基本的な知識不足を感じる事があります。基本的な「ひな形」を提供してくださる方もおります。「もう少し基本的な知識があればもっとよいひな形作成できるのに」と思ってしまう時があります。ファイルのひな形がそのようなものです。Excelにおいてデータ格納ファイルは「Sheet」になります。通常のデータ格納のファイル「データベース等」はSheetのように簡単に見る事はできません。そして、各項目にデータ型を指定しなければなりません。ExcelVBAもこの「データ型」を指定しなければなりません。ExcelのSheetは便利なものでデータ型が何であろうと自動で認識してくれます。「文字型」と「数値型」は本来違う型なのですがSheet(セル)で勝手に判断して計算しれくれます。計算できない型は勝手に飛ばして計算しますね。ところが通常のプログラミングで使用されるデータを格納する「データベース」等はそうは行きません。混同しているとエラーになります。その辺の違いをしっかり理解しておくとより良い物が出来るのになあと思ってしまう時があります。プログラム言語によっては「自動」で認識して「データ型」を定義しなくてもよいものが多くなりましたが、この「自動」の裏側では依然として基本的な決まり事は変わっていないことを認識しておいた方がよいのではと思っています。例えば「数量」と「単位」を一つのセルに
0
カバー画像

請求書作成アップデート

請求書作成のアップデートをしました。●修正機能をより充実させました。  請求書印刷手前ギリギリで、データを戻し修正を行えるようにしました。  「あ、しまった!」に対応しました。●再発行機能の追加  再発行機能はオプションでしたが、標準機能にしました。※ついでに紹介画像も新しく作ってみました。いまいちですか・・・センスないなあ。先日納品した商品は、帳票の下部に「合計」の記入がありまして、複数ページを印刷する場合。ある行数に詳細記入が来た時次のページの下部に「合計」の記入が移る。という事案がありました。皆さんがご使用になっている帳票は本当に様々だなあ、と思いました。今回一番悩んだのはFormのfocus機能がFormをモードレスにすると使えない? うまく機能してくれないというのがありました。気づくまでやや時間がかかってしまったのですが、どうもそういう設定のようです。ExcelVBAはまだまた深いなあ。と思いました。もうだいぶ古い言語なのですが可能性はありますね。これからもがんぱって創って行きます。
0
カバー画像

[VBA解説]VBAを書く準備をしよう![#0.5]

※今回からVBAを実際に書いていくつもりでしたが、思っていたよりも事前準備のボリュームが大きくなってしまったので、次回からVBAの解説に入ります。前回の記事はこちらそもそもVBAとは?簡単に言うと、「Microsoft Officeアプリの自動化機能である『マクロ』を作成するために使用するプログラミング言語」が、VBA(Visual Basic for Applications)です。マクロを作成することで、そのマクロを使用すると、同じ処理をいつでもボタンひとつで実行出来るようになります。Microsoft Officeアプリとは、ExcelやWord、PowerPoint、Outlookなどがありますが、それぞれVBAを使用してマクロを作成し、実行することが出来ます。ただ、WordやPowerPointのマクロはあまり使用されていないため、「VBAはExcelマクロを作るためのもの」みたいな印象が付いている人が多いかもしれません。ちなみにExcelファイルからマクロを実行してWordファイルやPowerPointを作成したり、Outlookのメールを送信したりも出来たりします。そのあたりになるとやや応用で複雑な部分もありますが、今は「そんなことも出来るようになるのか!面白い!」程度に考えてください。一旦使用頻度が高く、メジャーな「Excelマクロを作る」ことを題材として、この記事の解説を進めます。VBAを書くための準備さて、まずはVBAを書くための準備です。やるべきことは以下の通りです。既にやっている方は飛ばしてください。※ここの設定をやっておくと後々楽になりますので、少し面
0
カバー画像

【Excel VBA】シートの存在チェック②

前回、シートの存在チェックを実装する2つの方法を取り上げました。シートの存在を確認するだけならば、これら2つの方法で十分ですが、実務をこなしていくと、以下のような機能が欲しいと感じることがあります。① 別ブックにおいて、シートが存在するか調べたい。② シートが存在する場合は、戻り値でシート番号を返してほしい。③ シート名を完全一致、部分一致で調べたい。これらを実現するためには、前回の関数を修正する必要があります。以下に修正したコードを載せます。【コード】-------------------------------------------------------------------------------Function ExistSheet(ByVal key As String, ByRef wb As Workbook, ByVal match As String) As Long     Dim i As Long     For i = 1 To wb.Sheets.Count Step 1         Select Case match             Case "完全"                 If wb.Sheets(i).Name = key Then                     ExistSheet = i                     Exit Function                 End If             Case "部分"                 If InStr(
0
カバー画像

Excelなのに・・・

仕事でExcelを使うことがありますが、すごく無駄なことが多いんです。Excelなのに、手入力・手作業でのコピー・・・手作業って・・・パソコンだろ!!!自動でやれ!!!最近ツイッターでも流れてきてすごく驚いたのですが、Excelで資料作成・・・方眼紙じゃない!Excelって、表計算ソフトって名前なんですよね。そこで、最近Excel作業の効率化を目指すべくVBAを使った自動処理を開発したりしています。しかし、ここで作ってエラーが出たらだれも修正できないとの声が・・・まあ、確かに一理ある。でも、エラーが出ないシステムなんて誰も作れない。それを極限までなくすためにデバックを行う。試作品を試してもらう。そして、エラーが出たら修正する。Try & Err開発にはこれがすごく大事なんですよね。まあ、エラーが出ないことに越したことはないんですが。じゃあ、だれでも修正できるようにしようと考え始めた最近であります。簡単な基本知識から教育を行い、いずれは簡単な処理・解析から修正までできるようになれば御の字ですね。出来ないからやらないんじゃなくて、出来ないをなくして覚えてもらう。覚えてなくても、資料を見れば修正とか解析ができる。正直ここまでできれば、自分でくみ上げるのも出来てきてるレベルだと思うんですよね・・・確かに、出来る人にお願いするのも大事ですが、自分はわかんないから全然やらない!というのは、おかしな話ですよね。システム開発として委託するならまだしも。社内的に得意な人にお願いするのはわかります。でも、その人がいなくなったらどうするんでしょうか・・・ある程度、作る人もわかりやすく・見やす
0
64 件中 1 - 60