ブコメのブクマが本家超え、「おああーーーっ」超えてまじビビる。みんなExcel好きね。 ・解説 http://hokoxjouhou.blog105.fc2.com/blog-entry-1698.html 解説してくれた人がいたのでこれで。 こういうExcelってふとした時に現れて、そのたびにVBA探してくるの面倒だしどの環境でもいけるようにVBAなしでやっつけられるものはやっつけたい派です。他の人にVBAから説明するの辛いし。 ・補足 Shift+-は=の入力ね(英語キーボード想定してなかった)。 ↑キーだとたまに空白セルの一つ上のセル以外のところに飛ぶことがある(なぜかは知らん)ので、一つ上のセルに移動してね。 横のセル結合が混ざってたら…どうすればいいんだろうね。わからん。。 ・Google Spreadsheetsでもやりたい Ctrl+A→Ctrl+\→Ctrl+H→^$→Ta
Power Query M 式言語 Microsoft Power Query は、多くの機能を含む強力なデータ インポート エクスペリエンスを提供します。 Power Query は、Fabric、Power BI サービス、Power Apps、Microsoft 365 Customer Insights などの多くのオンライン サービスに加えて、デスクトップの Analysis Services、Excel、Power BI ブックと連携します。 Power Query の中核となる機能は、サポートされているデータ ソースの豊富なコレクションから 1 つ以上のデータをフィルター処理して結合する、つまりマッシュアップすることです。 そのようなデータのマッシュアップは、Power Query M 数式言語を使用して表されます。 M 言語は F# に類似した大文字と小文字が区別される関数
エクセルのVBAを習得したいと考えているが、なかなか学習まで踏み切れないという人は少なくないのではないでしょうか。 VBAを覚えれば、業務効率化が期待でき、転職にも役立ちます。 しかし、普通のエクセル操作よりも専門的なスキルとなり、プログラミング的な素養もいるため、難しいと考える人もいるかと思います。 そこで本記事では、初学者におすすめできるVBAプログラミングの学習サイトを紹介していきたいと思います。 本章にてさっそくVBAプログラミングのおすすめ学習サイトを紹介していきます。 いずれも無料で学べるサイトなので、気軽にVBAの学習を始めてみましょう。 ドットインストール ドットインストールは、短い動画講義で学習を進めていくスタイルの学習サイトです。 ドットインストールには全19回分のExcel VBA入門講義がアップされています。 本やテキスト形式の学習サイトだと勉強しにくいという人はま
テトリスってどうやって動いてるの? そもそもテトリスって何?という方はいないと思いますが、テトリミノと呼ばれるブロックが上から落ちてくるので、それを上まで積まないようにします。ブロックを横1列全て並べると消すことができます。 テトリスってどう動いているのかご存じですか? だいたいの流れを知っていた方が今回の記事の内容が理解しやすいと思いますので、まずはテトリスの作り方をChatGPT先生に聞いてみましょう。 import pygame import random # テトリスの初期設定 pygame.init() WIDTH, HEIGHT = 800, 600 GRID_SIZE = 30 GRID_WIDTH, GRID_HEIGHT = WIDTH // GRID_SIZE, HEIGHT // GRID_SIZE FPS = 30 # 色の設定 BLACK = (0, 0, 0)
配列の宣言、初期化、再定義 配列では同じデータ型の変数をたくさん扱う場合に、一つのかたまりとして扱うことができます。配列内のひとつひとつのデータを要素といいます。 それぞれの要素にはインデックス番号(添字)を指定することでアクセスすることができます。配列を宣言する際に、要素数と次元数が決まっている配列を固定長配列といいます。 これに対して、要素数と次元数が決まっていない配列を可変長配列や動的配列といいます。 配列の宣言、定義 それでは配列を宣言、定義する方法についてみていきましょう。 固定長配列と可変長配列で宣言の方法が少々異なります。固定長変数は配列名のあとに「()」(カッコ)を使って下記のように宣言します。 Dim 配列名(添字の上限値) As データ型名 可変長配列の場合は、宣言時には要素数や次元数は指定しません。 Dim 配列名() As データ型名 Arrayで初期化 配列を初期
初めまして。NakamuraBlog運営者の nkmrです。 selenium×VBAについてGoogle検索しても 的外れなサイトが多かったので、 自分用のメモとして本記事を作成するに至りました。 ぜひブックマークをして利活用ください。 あと、新PC購入時にSeleniumのセットアップ方法を忘れていたので、 せっかくだから、そこから網羅的に書いています。 Nakamura 必要な箇所を飛び飛びで ピックアップして ご利用くださいませ。 VBAでSeleniumを利用するためのセットアップ Selenium Basic をインストール まずは以下の手順で PCに Selenium Basic をインストールしましょう。 step 1SeleniumBasicをダウンロード GitHubの公式ページから 「SeleniumBasic-2.0.9.0.exe」 をダウンロードしましょう。 メ
Option Explicit Private Const PAGE_EXECUTE_READWRITE = &H40 Private Declare PtrSafe Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" _ (Destination As LongPtr, Source As LongPtr, ByVal Length As LongPtr) Private Declare PtrSafe Function VirtualProtect Lib "kernel32" (lpAddress As LongPtr, _ ByVal dwSize As LongPtr, ByVal flNewProtect As LongPtr, lpflOldProtect As LongPtr) As LongPtr Private Dec
はじめに これは、Visual Basic Advent Calendar 2021の22日目の記事となります。 Microsoftから2022年6月にInternet Explorer 11デスクトップアプリケーションのサポートが終了されるとの発表がありました。 IEサポート終了による影響 サポート終了により、IEオートメーション系のマクロが使えなくなります。 Set objIE = CreateObject("InternetExplorer.Application") Or Set objIE = New InternetExplorer 【2022/03/28追記】 オートメーションでの IE11 起動も Edge にリダイレクトされるという仕様は撤回されました。 よって、引き続き IE を使い続ける事もできます。 TinySeleniumVBAの紹介 うえぞうさん(uezocha
書籍紹介本を執筆しました 好評販売中! 「教師のExcel ~校務(個人業務+チーム業務)カイゼンのためのデジタルリテラシー~」 基本の学びなおしから校務をサポートするシステム作りまで(技術評論社) 教員みんなができる「チーム業務」のポイントを丁寧にわかりやすく解説しています。また「個人業務」を更に効率化するための学び直しと応用テクニックを解説しています。 この書籍の活用してもらうことで、先生方が児童・生徒に向き合う時間を、更に確保できることを願っています! ■ 詳細(技術評論社) ■ 内容紹介:note ■ 購入:amazon 汎用コードのリクエストをいただきました。 リクエスト 12023.10.20 更新:2024.08.06 「指定フォルダのExcelの全シートをシート名のPDFファイルとして出力」 指定フォルダ内のExcelの全シートを、1シートずつPDFファイルとして出
ChatGPTがおしゃべりだけではなく調べ物などあらゆるタスクにおいてパワフルなアシスタントとして活躍してくれることについては、ここではもう説明するまでもないでしょう。 そんなChatGPTをブラウザだけではなくExcel VBAから直接使えるようにするというのがこの記事の内容です。この技術を応用すると、こんなことができるようになります。 製品カテゴリー(この動画では、商用データベースソフト)を入力するだけで競合製品の一覧と製品評価軸を自動設定、そして評価コメントまで自動で入力してくれました。あとは人間が添削すれば良いのでとても楽ちんです。 それでは、作り方をみていきましょう。 ChatGPTのAPIキーを取得 はじめに、ブラウザからではなくネットワーク経由でプログラムに組み込むためのAPIを利用できるようにします。 利用申し込みは以下のOpenAI社のサイトから行っていただき、最終的にA
最近,業務を効率化する手段として「RPA(Robotic Process Automation)」という言葉を耳にすることが増えてきました。RPAは,人間が手作業でしなければならない業務を自動的に実行してくれるもので,うまく導入できればとても有益です。ただ,導入するのに別途費用がかかることも多いうえ,ツール独自の仕様に対応するのにひと苦労することも。 それに対して,多くのオフィスで使われていて,しかも業務改善の中心になりえる存在があります。Excelです。Excelでは,VBA(ブイビーエー,Visual Basic for Applicationsの略)というものを使って,作業を自動化することができます。 たとえば,「都道府県別に,47個のフォルダーを作ってよ」といわれたとしましょう。手作業で対応しようと思ったら, フォルダーを作りたい場所(デスクトップもしくは任意のフォルダの中)
はじめに 業務でVBAのプログラムを作っていた時に、内閣府の祝日情報を扱いたいと思ったのですが、VBAではお手軽にHTTP/HTTPS通信出来る組み込みの関数が用意されていませんでした。 (※内閣府の祝日情報はCSV形式で提供されています。) そこで様々なサイトを参考にしながら、HTTP/HTTPS通信でWebページを取得できるモジュール(クラス)を作成してみました。 作成したクラス VBAでHTTP通信するプログラムを作るにあたり、こちらの記事を参考にしてベースのプログラムを作りました。 また、HTTPS通信に対応させるにあたって、こちらの記事を参考にしました。 幾つかのサイトで紹介されていたサンプルコードにはCreateObject("MSXML2.XMLHTTP")が使われていましたが、この書き方だとTLS1.2を利用しているページでエラーとなってしまいます。 HTMLではなく単なる
連載第3回目の目的 この連載第3回目では、Excel VBAによるWebサービスの呼び出しとJSONデータの解析についての手順を学びます。連載第2回目では、XML形式のデータを返すWebサービスを用い、データの解析を行っていましたが、今回はJSON形式のデータに対して解析を行います。Webサービスの多くは、取得できるデータをJSON形式で提供していますので、似たようなケースでは同様の手順でのデータ取得などに応用できるでしょう。 題材としては、気象庁の提供する天気予報APIを用います。このAPIは、公式にはWebサービスとして公開されているものではないですが、利用規約を守ることで誰でも無料で気象情報のデータを入手することができます。今回はこれを使用して、指定した気象区の天気予報を自動取得するExcelワークシートを作成します(図1)。 図1:図1:完成サンプル(weather_forecas
Option Explicit Sub TestPs() Dim sPath As String Dim dPath As String Dim psCmd As String Dim hoge As Variant sPath = "C:\work\hoge.txt" dPath = Replace(sPath, "hoge", "huga") psCmd = "Copy-Item " & sPath & " " & dPath hoge = runPshell(psCmd, 0, True) End Sub コメント 参照設定をユーザに操作させたくなかったのでCreateObject("WScript.Shell")を使っています。 変数intVsblでPowerShell画面の表示(1)/非表示(0)を選択できます。 変数waitFlgでPowerShell実行完了を待つ(True)
いままでOfficeの32bit版のVBAでWindowsAPIを使用していたコードが、Officeを64bit版に変更するとコンパイルエラーになり使えないということが発生します。64bit版に対応させるためには、WindowsAPIのDeclareステートメントの宣言を書き換える必要があります。WEB検索するとMS公式のものも含めていろいろ情報が見つかりますが、分かりにくかったり、不正確な情報も多々あります。そこでhatenaなりに分かり安く整理してみました。 Office64bit版、Office32bit版どちらでも使用できるDeclare宣言詳しい解説は後回しにして、結論を先に書きます。 Office2010以降(VBA7)の場合Declare宣言実例で説明したほうか分かり安いと思いますので、SetWindowPos というAPIを例に説明します。 旧来の宣言は下記になります。 P
なんかふと気になったのでExcelでJSONを読み取る方法を探した。 JSONパース自体はこちらを参考にさせてもらった。 ExcelでJSONを扱う場合のつまずきポイント まず前提として、外部ファイルであるJSONファイルを開き読み込んでシートに一覧出力する、 という処理を行いたい。 JSONの構造 JSONの構造は下記。 {"tweet":[ { "id":"0001", "daytime":[ { "year":"2019", "month":"01", "day":"01", "hour":"12", "minute":"00" } ], "contents":"テストテストテスト" }, { "id":"0002", "daytime":[ { "year":"2019", "month":"01", "day":"01", "hour":"12", "minute":"00" }
フォームの「ポップアップ」プロパティを「はい」にするとAccess内のウィンドウの最前面に表示されますがが、他のアプリケーションがアクティブになるとその背後に隠れてしまいます。他のアプリケーションも含めてフォームを常に最前面に表示したいという場合もありますよね。 その場合、Windows APIのSetWindowPosを使うと他アプリケーションがアクティブになっても最前面に常に表示させることが可 ... ブログでコメントを投稿した後、誤字や間違いに気づくということはよくありますよね。それを修正したり、コメント自体を削除したりしたいですね。前のFC2ブログでは投稿後も編集や削除出来たので、WordPressでもできるものと思っていました。実際、できていたので。しかし、それは管理者としてログインしていたからということに最近気づきました。 一般ユーザーとしてコメント投稿すると後から編集も削除も
VBAコードはVBE(Visual Basic Editor)を使って記述することになりますが、初期設定のままで使ってませんか。オプション設定を少し変更するだけで使いやすくなりコーディング効率がアップします。hatenaが現在使っているお勧めの設定を紹介します。 VBAウィンドウのメニューの[ツール]-[オプション]をクリックするとオプションウィンドウが開きます。 [編集]タブでの設定デフォルトから変更するのは下記の2箇所です。 自動構文チェック チェックしないデフォルトではオンになってます。コード入力中に構文エラーがあると 、すぐにエラーダイアログで出て間違いを指摘してくれます。コードを修正するときに切り貼りすることがよくありますが、そのたびにダイアログがでるのは鬱陶しいです。 オフにしておいても、構文エラーの部分は赤字になるのですぐに分かります。切り貼りや移動が一段落してから赤字の部分
エクセルVBAでマクロを作ると、思い通りに動かないことがとても多いです。 そういうときには、何がおかしいのか原因を探って修正する「デバッグ」作業が必要になります。 このページでは「デバッグ」をする基本的な方法を説明していきます。 デバッグとは何か? デバッグというのは、プログラムがうまく動かないときに、原因を突き止めて修正する作業のことをいいます。 英語では「debug」と書きます。 プログラムの誤りのことをバグ(bug)というのですが、それを取り除く(=「de」)作業ということで、「debug」と呼ばれています。 また、デバッグをするツールのことをデバッガ(=「debugger」)といいます。 VBAの場合は、エディタ自体にデバッガの機能が付いているので、それを使ってデバッグをしていきます。 デバッグをするときの考え方 デバッグをするときには、次のような手順で考えていきます。 直接の原因
結論 VBAからVBAの仕様書を作成するVBAを書きました。(Document of VBA, for VBA, by VBA)(完成品はこちら) はじめに VBA(Visual Basic for Application)が世に登場して四半世紀。解説本や解説サイトも多数存在し、趣味グラマーがITリテラシの低い職場で無双するためのツールとなりました。それは文系が跋扈する行政事務職の中でも例外ではなく、そうしたいわば「ハイパー事務屋」が日々の業務を支えているのが現状です。 確かにVBAは非常に便利なツールですが、一方で問題点も多数指摘されています。特に問題となっているのが「後継者いない問題」ではないでしょうか。 趣味グラマーがVBAでプログラムを作成し、職場ではローコストかつ効率的に業務が遂行できるようになった反面、開発者の異動や退職で管理が行き届かずいわば「魔法の箱」と化してしまったプログ
はじめに会社でAzure DevOps Servicesを導入しました。PythonやUiPathなどの開発に使おうとしているのですが、職場でも多数存在しているExcelマクロをバージョン管理する方法は無いか?と何気なく試してみたところ、割とうまく動いたので、そのやり方を紹介します。 Excelマクロのバージョン管理の運用イメージExcelマクロをAzure DevOpsでバージョン管理するする場合は、下記のようにマクロ付きExcelファイル(*.xls, *.xlsm, *.xlam)をGit管理するだけの非常に簡単な手順になります。 マクロ付きExcelファイルをGitのリポジトリに追加し、更新をAzure DevOps上のリモートリポジトリにPushするAzure DevOps上でマクロ付きExcelファイルからVBAソースコードが自動で抽出され、リポジトリにCommitされるVBA
ExcelでSQLiteのデータを参照したい 私は会社でソフトウェアのテスト項目をExcelで作成・管理しています。 様々な前提条件(製品の設定の組み合わせ)でテストを組んでいるのですが、 ある日ふと「こんな設定の組み合わせで使っているお客さんはいるんだろうか?このテストって意味あるんかな…?」と疑念がわきました。 お客さんが製品をどのような設定で使っているのかのデータはあります。 ですが、そのデータ量が膨大なため、Excelやcsvで扱うことが難しく、SQLiteの形でデータベースを管理しています。 なので、例えば、 「設定A=1、設定B=3、設定C=2」で運用されている製品が市場でどのくらいあるかを調べるには、Excelとは別にSQLiteを読みこんで調べないといけないわけです。これはとても面倒です。 ExcelのVBAを使ってSQLiteのデータを参照することができれば、この作業はと
Excelの「VBA」というと、Excel上級者が使う難しい機能(プログラミング言語)だと思っている人が多い。確かに、VBAを使って特定のシステムを組み上げるのは、専門的な知識を持った技術者や上級者にしかできないだろう。しかし、VBAの中には全くの初心者でも使える便利な機能があり、お手本通りにコードを入力するだけで、日々の仕事に役立てられるものもある。「VBAだから難しそう」などと尻込みせずに、メニュー操作や数式入力と同じような感覚で、ちょっと使ってみてはどうだろう。 作ってはいけない「Excel方眼紙」の例 一例が、「セルの漢字にふりがなを付ける」という操作だ。名前が漢字で入力された名簿を並べ替えるとき、五十音順にうまく並べ替えられず、困惑したことはないだろうか(図1)。Excelは、セルに記録された「ふりがな」の情報を基に、漢字を五十音順に並べ替えることができるが、この「ふりがな」情報
Excelでデータの集計の際に欠かせないピボットテーブル。知ってるし使ったことはあるけど、 ExcelVBAで書いたことはない、という人は結構いるのではないでしょうか。(私がそうでした。) なので、ExcelVBAでピボットテーブルを操作する際の基本的なコードをいろいろと見ていきましょう。 ちなみに、私は普段の業務ではよくExcelVBAでツール開発していますが、まだまだ勉強中です。 今回は自身の復習も兼ねて、理解を深めるためにも書いていきたいと思います。
私がVBAの勉強を始めたきっかけとか色々… 今日はコードの話とかじゃないです! 今日は日曜日だし、いつもと違う感じのこと書いてみようかと思いました。 今からVBAの勉強をしてみようかなと思っている普通の事務OLの方には参考になるかもしれません。 (限定的なターゲット!笑) 特別なスキルを持ってると時給も良いっぽいけど… 私はここ数年ずっと派遣の事務で働いてますが、いつも新しい募集案件とかみる度にそう思ってました。 昔からExcelは大好きで、普通の人よりはちょっと関数を使いこなしたり簡単なマクロを作ったりしたことはあったものの、ただのOLということには変わりなく 「本格的に何か勉強してそれ専門の仕事をするのは大変そうだしな…」って思って避けてました。 例えばVBAとかスキルとして身につければ、お給料がよくなるのはわかっていてもなかなか踏み出せずにいました。 ちなみに私の登録してる派遣会社が
1. はじめに 前々から興味はあったExcelのマクロやVBA。しかし日々のあれこれに追われ、少しかじったものの本格的な勉強は先延ばしに。それがこの間までの私の現状でした。似たような境遇の方は多いのではないかと思います。 そんな折に、彗星の如く現れたChatGPT先生。 私は好機を逃すまいと、VBAコードについて教えを乞いました。 2. ChatGPTとは 巷で話題ChatGPTですが、念のため説明します。 ChatGPT とはアメリカの人工知能(AI)研究所「OpenAI」の開発した対話型AIチャットボットであり、話しかけるような文体で質問や依頼をすると、回答を作成してくれるサービスです。入力されたデータをもとに、新しいデータを生成するAI技術 「ジェネレーティブAI」 の代表格といっても過言ではないでしょう。 長文の要約や理解度を問う問題の作成、小説の執筆、統計的処理など、様々な分野で
「excel vba 図形を一度に消すには?」 という検索が、このサイト・インストラクターのネタ帳で行われていました。 図形を一気に削除するExcelマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。 選択したセル範囲に含まれる図形を削除するExcelマクロを既にご紹介していますが、全図形を一気に削除するマクロをご紹介します。
はじめに Excelで作った一覧表の、特定の項目別に表を作成したいと思ったことはないでしょうか?通常、エクセルのフィルタ機能を使えばこの操作を行うことが出来ますが、項目ごとにコピペで新たなシートに貼り付けたりするのは意外と大変です。 果物の受注一覧から、果物別に注文情報の一覧を作成します。 以下のイメージになります。 そこで今回は、一覧表から各項目ごとに別シートにまとめるマクロをご紹介したいと思います。処理の中で少しややこしいところが出てきますが、とりあえず全体の処理の流れを確認して、難しいところはまた別の機会に詳細をご説明したいと思います。 サンプルコード それでは、まずサンプルコードをご紹介します。 Sub 重複一覧作成() ActiveSheet.Range("A:A").AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Acti
【ファイル名】VBProject.xlsm 【バージョン】Ver 1.1.1 【作成日】2015年02月24日 【更新日】2015年02月28日 【動作確認】Windows 7 【必要なソフト】Microsoft Excel 2010 【ダウンロード】VBProject.zip 【説明】VBAからVisual Basic Editorを使用するサンプルです。 【注意】実行するにはオプションの「VBA プロジェクト オブジェクト モデルへのアクセルを信頼する」にチェックを入れます。 VBEのメニュー バーのメニュー、プロジェクト ウィンドウとコード ウィンドウの右クリックメニュー、ツール バーをカスタマイズします。 VBProject.xlsmを編集すると追加したメニューなどのコマンドが実行できなくなります。実行するには一度閉じてから再度開いてください。 実行時エラー'1004': プログラ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く