タグ

Excelに関するtakryou79のブックマーク (60)

  • 【入門者向け】Python in Excelが発表!そろそろプログラミング勉強すべき? - Qiita

    2023年8月にPython in excel が発表されました。X(旧Twitter)を見ていると「いよいよプログラミングを勉強するべき?」というポスト(ツイート)をいくつか拝見しました。流行りに乗ることはとっても良いことですが、当に必要なのかどうかは考える必要があると思います。なので今回は簡単ではありますが、Python in ExcelVBA、マクロ、Pythonあたりをまとめたいと思います。 追記 動画バージョンを作成しました。パワーポイントにまとめていますので、聞き流したい方はこちらをご活用ください。 Python in Excel 一言で言うとアナリスト向けと言った感じです。現状はMatplotlibやseabornを使ったグラフ作成(棒グラフ、折れ線グラフ、ヒートマップなど)や、scikit-learnやstatsmodelsを活用した、機械学習の適用が可能です。コードは

    【入門者向け】Python in Excelが発表!そろそろプログラミング勉強すべき? - Qiita
  • 【VBA】ハイパーリンククリック時に処理を行う方法など

    こんにちは、Ryoです。 ハイパーリンクは便利な機能なので利用頻度も多いと思いますが、そのハイパーリンクに関連した処理として、クリックした際に処理を行うFollowHyperlinkイベントやハイパーリンクアドレスを取得してセルに書込みを行う方法などについて今回は書いていきたいと思います。 1.サンプル概要/サンプルコード ◆ハイパーリンククリック時に処理を行う Sheet上のハイパーリンクをクリックした際に、そのハイパーリンクに設定されたアドレスを取得しメッセージボックスに表示します。 先ずハイパーリンクをクリックします。 クリックすると、ハイパーリンクに設定されているアドレスをメッセージボックスで表示します。 次にこの部分が特殊なのですが、メッセージボックスと並行して処理が進行しリンク先も表示されます。なので、メッセージボックス上の「OK」のクリック待ち⇒リンク先を開く…のような形には

    【VBA】ハイパーリンククリック時に処理を行う方法など
  • 【Excel】名前はすでに存在します。が消えない…非表示にするには?【解決方法】 | ダニエルブログ

    日々、Excelを使ってお仕事をされている皆様、お疲れ様です。 こんな表示が出てきて苦しんでおられませんか? 名前 ’<文字列>’ はすでに存在します。この名前にする場合は [はい] をクリックします。移動またはコピーを行うために ‘<文字列>’ の名前を変更する場合は、 [いいえ] をクリックします。 これ、すんごく厄介ですよね。 この表示が出てくるのは、ブックから別ブックにシートコピーや移動をしたタイミングです。消そうとしても全然消えてくれず、作業のリズムも乱されますね。 この記事では、まずこのダイアログボックスが表示される原因について触れ、そのあとに解決方法についてもご紹介します。 Excelの「名前は既に存在します」問題とは?さて、この悪名高きダイアログボックス、「はい」か「いいえ」の選択肢に加え、「閉じる」ボタンも用意されています。しかし、どの選択肢を選んでも結果は下記の通り。い

    【Excel】名前はすでに存在します。が消えない…非表示にするには?【解決方法】 | ダニエルブログ
    takryou79
    takryou79 2022/11/08
    Sub DisplayName() Dim n For Each n In ThisWorkbook.Names If n.Visible = False Then n.Visible = True End If Next End Sub
  • VBA から WIA Object を使って Exif 情報を取得

    GPS 付きのデジカメで撮った JPG 写真に付加されている Exif 情報を取り出したいと思って、最近手を出し始めた Python を使うことを考えたのですが、これは仕事上必要な処理になるので、不慣れな Python で不安定なプログラムを書くより、使い慣れた VBA でどうにかならんかな?と考えていたら、こんな素晴らしいものがあることが分かりました。 WIA Object Access(or Excel) で参照設定すれば使えます。 参照するライブラリの名前は Microsoft Windows Image Aquisition Library です。 私の環境には、 V2.0 が入ってました。( Office 2010 の Access14) Sub GetExif() Dim ObjWia As Object 'WIA.ImageFile Set ObjWia = CreateOb

    takryou79
    takryou79 2022/02/24
    VBAでExifを読み取る方法
  • VBAでWIAを使ってExifの撮影日付(DateTimeOriginal DatePhotoTaken)読み取る関数 - Qiita

    OS Windows Me 以降 なお、スマホではなくコンデジ等を使う場合は必ず撮影前か、朝、時間を正確に合わせること。デジイチ等の高級機種は使ったことがないので不明だが、一般的にデジカメの時計は日差1秒くらいはあると思われる。時間を合わせないときはテレビ、電波時計等比較的正確な時計を撮影する。こうするとあとから秒数のズレで字間を計算して求める。 Exifを読み取るための参照設定 ライブラリ名(Win10 + Office2016) Microsoft Windows Image Acquisition Library v2.0 ファイルの場所と名前 C:\Windows\System32\wiaaut.dll VBA から WIA Object を使って Exif 情報を取得 - にわか管理者のあてにならん情報 通常は出てきていないので参照設定で探す C:\Windows\System3

    VBAでWIAを使ってExifの撮影日付(DateTimeOriginal DatePhotoTaken)読み取る関数 - Qiita
    takryou79
    takryou79 2022/02/24
    VBAで写真のExifを読み取る方法
  • ExcelのIFERROR関数の使い方|エラーの場合に指定した値を返す

    ExcelのIFERROR関数は、エラーの場合に指定した値を返す関数です。エラー値を「0」と表示したり、または非表示(空白セル)にするときなどに使われます。 IFERROR関数の書式から基的な使い方までご紹介しています。 IFERROR関数とは Excelで数式を使っていると関数の名前が間違っていたり、無効なセルが参照されているときなどエラー値が表示されます。 Excel 2007から追加されたIFERROR(イフエラー)関数を使えば、エラーが出た時に非表示(空白セル)または「0」にすることができます。 下記がエラー値の一覧になります。

    ExcelのIFERROR関数の使い方|エラーの場合に指定した値を返す
  • ハイパーリンク(Hyperlink)|VBA入門

    公開日:2013年5月以前 最終更新日:2021-11-04 第95回.ハイパーリンク(Hyperlink) VBAでハイパーリンク(Hyperlink)を追加したり削除したりする場合を解説します。 ハイパーリンクは、Hyperlinkオブジェクトです、 そして、Hyperlinkオブジェクトの集まりであるコレクションがHyperlinksコレクションになります。 以下の説明や使用例を読む時、コレクションとオブジェクトが分かりづらいかもしれません。 Hyperlinksは、Hyperlinkのコレクションです。 Hyperlinks(1)は、Hyperlinkオブジェクトです。 簡単に言えば、シートには複数のハイパーリンクが存在します、これがHyperlinksコレクション。 1つのハイパーリンクを特定した時、それがHyperlinkオブジェクトになります。

    ハイパーリンク(Hyperlink)|VBA入門
  • 【Excel】ファイルサイズを取得するマクロ

    takryou79
    takryou79 2021/12/08
    fso.GetFile(filePath).Size
  • Excel VBA ツール : フォルダ内の全 Excel ファイルの パスワード を 一括解除 する

    今回は、 フォルダ内の Excel ファイルにかかっている パスワード を 一括解除 するVBAマクロ ツール を作ってみたのでシェアしますね。 こんにちは、ゆう(@ProgYuki)です。 パスワードがかかっているExcelファイルを開く時にいちいちパスワードを入力するのが面倒と思うことってありませんか? 特に子会社等に同じファイルをばら撒いて、データを入力してもらい、それらを回収して集計する時等ファイルが複数ある場合はさらに面倒ですね。 私も仕事の中で100社以上から送られてくるパッケージ(Excelファイル)をAlteryxで集計する際にパスワードを解除してないとエラーが発生するので、パスワード解除しておく必要があった時に手作業で100個以上のファイルを開いて、パスワードを解除するなんて面倒すぎてムリ、、、と思った時がありました。 ということで、Excelファイルにかかっているパスワ

    Excel VBA ツール : フォルダ内の全 Excel ファイルの パスワード を 一括解除 する
  • ピボットテーブルで複数条件の絞り込みをするにはスライサーを活用

    Excelでデータを抽出したり、絞り込みを行うために[データ]タブの[フィルター]をよく利用している方、またはテーブルを作成してフィルターボタンを活用されている方が、ピボットテーブルを操作されると首を傾げられることがあります。 ピボットテーブルでは、1つのフィールドのフィルターボタンで絞り込んで、さらに他のフィールドで絞り込むと関係ない値まで表示されて違和感をお持ちになるようです。 データフィルターのように絞り込みたい場合は、複数のスライサーを表示して使用すると便利です。

    ピボットテーブルで複数条件の絞り込みをするにはスライサーを活用
  • 複雑な条件分岐にSelect Caseの裏技を使う:Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

    複雑な条件分岐にSelect Caseの裏技を使う (Excel 97/2000/2002/2003/2007/2010/2013/2016) セルの値が「100だったら」「そうでなかったら」という二値で処理を分岐するには、Ifステートメントを使います。 Sub Sample1() If Range("A1").Value = 100 Then MsgBox "100です" Else MsgBox "100ではありません" End If End Sub 二値ではない条件で処理を分岐するときはSelect Caseを使います。 Sub Sample2() Select Case Range("A1").Value Case Is < 50 MsgBox "50未満です" Case 50 MsgBox "50です" Case Is > 50 MsgBox "50超です" End Select

    takryou79
    takryou79 2021/09/06
    Select Case True Case 式1 Case 式2 Case Else End Select
  • ループを使わずテキストボックスをすべて削除するーTextBoxes.Delete:エクセルマクロ・Excel VBAの使い方/DrawingObjects

    「ActiveSheet.TextBoxes.Delete」というコードだけで、アクティブなシートのテキストボックスをすべて削除できてしまいます。 イミディエイトウィンドウに、 ActiveSheet.TextBoxes.Delete と入力して[Enter]キーを押せば、テキストボックスを削除できます。 あるいは、 Sub テキストボックスを削除する() ActiveSheet.TextBoxes.Delete End Sub のようなSubプロシージャにしても勿論OKです。 TextBoxesメソッドは、オブジェクトブラウザーでは非表示になっていますけれど、 ActiveSheet.TextBoxes.Delete というコードは割と有名なコードのようで、日語圏でも英語圏でも掲示板などで、見かけることのある裏技的なコードです。 最終更新日時:2020-03-31 06:52

    takryou79
    takryou79 2021/08/31
    ActiveSheet.TextBoxes.Delete → テキストボックスはこれで消さないとブックが強制的に閉じてしまう
  • ウェブ版 Excel で使える新しい「Officeスクリプト」を試してみた | DevelopersIO

    Guten Tag、伊藤です。 何気なく Web 版の Excel でスクリプトを使おうと見てみたら、GAS のようなサンプルスクリプトが出てきて驚きました。 「Office スクリプト」という TypeScript で記述できるスクリプト機能で、今年5月末にGAが開始したばかりなんですね! しかし、同じエクセルファイルをアプリ版で開いてみると、従来のVBAが表示され、こちらのスクリプトエディタは表示されません。というのも、現時点で Web 版の Excel のみで利用可能な新機能なんですね。まさに Google スプレッドシートのスクリプトのようです。 ということで、今回は簡単に使ってみた内容を紹介します。 Officeスクリプトの始め方 まず、利用には商用ライセンスでウェブ版などの要件を満たしている必要があります。 現時点で要件として記載されているのは以下の通りです。 1. Excel

    ウェブ版 Excel で使える新しい「Officeスクリプト」を試してみた | DevelopersIO
    takryou79
    takryou79 2021/07/30
    楽しそうだなぁ
  • 【EXCEL VBA】WEBブラウザを自動操作する!Selenium Basicを始める!(Chrome編)

    Selenium BasicとはVBAでWEBスクレイピングなど自動操作を行いたい時、VBAをやっている人だと、IE(Internet Explorer)の自動操作が考えられますが、最近だとIEは既に時代遅れ。 WEBアプリやサイトによっては、IEでは動かないなんてのも多くなって来ましたね(T_T) Selenium Basicを利用することにより、IEでは動かないWEBアプリやサイトを、ChromeやFireFoxなどのブラウザを操作してWEBスクレイピングを行うことが可能です! しかも!IEの操作よりも簡単にコードが記述出来ます(^^) 今回は、そのSelenium Basicの初め方を紹介したいと思います!! 準備Selenium Basicは、生VBAのそのままの状態では使えません。 始める前に、事前の環境構築(準備)が必要です。 ※今回は、Chromeブラウザの操作で紹介します。

    【EXCEL VBA】WEBブラウザを自動操作する!Selenium Basicを始める!(Chrome編)
    takryou79
    takryou79 2021/06/15
    Selenium Basic
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

    Google Sites: Sign-in
  • VBAのエラー処理の使い分け(On Error・Resume) | Excel作業をVBAで効率化

    エラー処理のステートメントを使う理由 VBAでのエラーには主に3つあります。 コンパイルエラー、実行時エラー、論理エラー、の3つです。 それらのエラーの中で、エラー処理のステートメントは2つ目の実行時エラーが発生したときにエラーをどう扱うかについて記述します。 On Error Gotoステートメント On Error Gotoステートメントはエラーが発生すると行ラベルに処理が移動します。 行ラベルとは、エラー発生時に処理を移す位置の名前で、コロン(:)を付けることで行ラベルと認識されます。 「On Error Goto 」の後ろに同じ行ラベル名を書いておくと、エラー発生時に処理が移ります。 On Error Gotoステートメントは、エラーが発生する可能性がある行よりも前に書いておく必要があります。 以下の2つはどちらもSetステートメントの行でエラーが発生する処理ですが、On Erro

    VBAのエラー処理の使い分け(On Error・Resume) | Excel作業をVBAで効率化
  • '1004' WorksheetFunctionクラスのMatchプロパティを取得できません

    作成日:2018/01/29 更新日:2018/02/05 対象:Windows 10 '1004' WorksheetFunctionクラスのMatchプロパティを取得できません 【目次】 現象 Excel VBA で Match によりセルの範囲から値を探そうとすると以下のエラーが発生する場合があります。 「実行時エラー '1004' WorksheetFunctionクラスのMatchプロパティを取得できません。」 原因 主に2通りの原因が考えられます。 (1)Matchで見つからない Match により見つからなかった場合はエラーが発生してしまうようです。バグではなく見つからない場合もエラーとなるため、処理(ハンドリング)には以下のようなエラー処理が必要。 On Error GoTo Err_Label ret = Application.WorksheetFunction.M

  • VBAからMATCH関数利用時にエラーを回避する:エクセルマクロ・Excel VBAの使い方/WorksheetFunction

    On Error Resume NextでWorksheetFunction.Matchのエラーを回避する まずOn Error Resume Next文を使ってエラー回避するサンプルマクロです。 Sub Matchのエラー回避_Resume_Next() Const KEY = "abc" Dim n As Long: n = 0 On Error Resume Next n = WorksheetFunction.Match(KEY, Range("A1:A100"), 0) On Error GoTo 0 If n = 0 Then MsgBox "『" & KEY & "』は見つかりませんでした。" Else MsgBox n End If End Sub On Error Resume Next文で実行時エラーを無視して処理を継続しておいて、 On Error Resume Ne

  • インジケーターバー・コードウィンドウ左側のグレー部分を表示する:いちばんやさしいExcel VBAの教本

    そもそも、このコードウィンドウ左側のグレー部分が表示されていない、という方もいらっしゃるかもしれません。 実際のセミナーでも、そのような状態の方がいらっしゃいました。 インジケーターバーを表示する コードウィンドウ左側のグレーの部分はインジケーターバーと呼ばれ、VBEの[オプション]ダイアログで表示・非表示を変更できます。 オプションダイアログの表示はアクセスキーで [オプション]ダイアログの表示は、拙著p.121で書いているとおり、アクセスキー[Alt]→[T]→[O]をおすすめします。 VBEに限らず、Excel体や、WordでもPowerPointなど、多くのMicrosoft製品で、[Alt]→[T]→[O]を使ってオプションダイアログを表示できます。 優しいを目指したExcel VBA入門書 リアル書店の在庫確認用リンク

  • 【VBA】例外処理(Try-Catch-Finally)を使う方法

    結論から言うと、VBAにはTry-Catch-Finallyが存在しない。 そこでOn Errorステートメントとラベルを使う。 一番簡単な例外処理(エラーハンドリング)は以下のとおり。 Sub ErrHandlingTest() On Error GoTo ErrorHandler Dim value As Long value = 2 / 0 '-- ゼロ除算のためエラー発生 Exit Sub ErrorHandler: '-- 例外処理 MsgBox Err.Number & ":" & Err.Description, vbCritical & vbOKOnly, "エラー" End Sub このようにすると、エラーが発生した時点で「On Error GoTo ラベル名」に指定したラベル名(上記の例ではErrorHandler)に飛ぶ。 エラーごとにキャッチしたい ひとつの例外しか

    【VBA】例外処理(Try-Catch-Finally)を使う方法