Excel関数、VBA、マクロ、Office関連
 
 

スリービットコムの関数辞典のトップへ戻る



スリービットコムでは、エクセル関数、マクロ・VBA、マイクロソフトOffice関連の使い方、
IT得のコツなどの情報に関する情報を配信をしています。
(現在のところ配信は不定期となります。)
 
 

‥-━゜+.━★‥…-━.+゜━★‥…-━゜+.━★
スリービットコム通信 第5号
‥-━゜+.━★‥…-━.+゜━★‥…-━゜+.━★

..oO⌒Oo....oO⌒Oo.. ..oO⌒Oo....oO⌒Oo....oO⌒Oo..

こんにちは、(株)スリービットコムです。

ここのところ、寒さが少し和らいだかと思ったら、今日は雪が舞って
寒い1日となりましたが、皆さま、お元気でお過ごしでしょうか。

Excel関数、マクロ(VBA)、その他Office関連のアイディアや学習のコツなど
をお届けするメールマガジンです。

セミナーではなかなかご紹介しきれない細かい知識やノウハウを提供して
いきたいと思います。
どうぞよろしくお願いいたします。




_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/

 ☆ファンクション(関数)をマスターしましょう!

   「FIND」

_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/


今回は、特定の文字が含まれているかどうかを調べ、文字が見つかった場合は
何文字目にあるかを求める「FIND」関数をご紹介します。
コード番号や備考欄などに、特定の文字が含まれているかどうかを判断して
計算方法や、表示する答えを変える場合などにも応用できます。


≪関数の書式≫
FIND(検索文字列,対象,[開始位置])


≪引数≫
検索文字列 = どのような文字を探したいかを指定します。
対象 = どこから探すか、対象となる文字列を指定します。
開始位置 = 何文字目から探し始めるかを指定します。


≪ヒント≫
カンマで区切って関数に与えるデータのことを「引数(ひきすう)」と
言います。=SUM(A1:A5) の場合のA1:A5などが該当します。
複数の引数を指定する場合は、1つ目から順番に
「第一引数」「第二引数」・・・と呼びます。


≪使用例≫
=FIND("コーヒー",A2,1)

セルA2にブレンドコーヒーと入力されている場合はB2 の値は 5 となります。
ブレンドコーヒー の 1文字目から コーヒーという文字列を探し、
5文字目に見つかったことを表しています。




文字列が見つからないとエラーが表示されます。




FIND関数はIF関数と異なり、大文字と小文字を区別して該当する
かどうかを判断します。





_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/

 ☆仕事のステーショナリー ちょっと便利なサンプル紹介 

    「FIND」編

_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/


『IF関数とFIND関数を使って、
 「特定の文字列が含まれているかどうか」
 によって、表示する答えを変えるにはどうしたらよいでしょうか?』

例として書籍名に"エクセル"という文字が含まれているかどうかを
早速、前文のFIND関数を使って求めてみましょう。

A2に書籍名が入力されている場合に、B2に結果を表示する際の
作成例と関数の結果です。

例1) =IF(ISERROR(FIND("エクセル",A2,1)),"","エクセル参考書")
    A2に"エクセル"という文字を含む"エクセル辞典" という文字列が
    入力されている場合、結果は エクセル参考書 と表示されます。



《ヒント》 文字が見つからない場合はエラーとなりますが、エラーかどうかを調べるには
      ISERROR関数、またはISERR関数を使います。
      探したい文字"エクセル"が見つからない場合は、エラー(#VALUE)になります
      ので、もしFIND関数の答えがエラーならば、何も表示せず、
      エラーで無い場合は、"エクセル参考書"という文字を表示します。






《ヒント》
☆Accessで、特定の文字が含まれているかどうかを調べるには、InStr関数を使って
 InStr([書籍名],"エクセル") のように使用します。
    

≪応用例≫
全角と半角のカタカナやアルファベットなどが混在する文字列の中から、
文字列を探すには、JIS関数などを使って、対象となる文字列を、一旦
全角に変換してから調べると、簡単に結果が求められます。

「全角または半角の"エクセル"が含まれているかどうかを調べるには
どうしたらよいでしょうか?」


セルA2に半角の"エクセル" が含まれている場合の作成例です。

例1) =FIND("エクセル",JIS(A2),1)
    結果は・・・1と表示されます。(1文字目に見つかった場合の結果です。)





≪ヒント≫
JIS関数は、半角を全角に変換します。

以下の例では、半角のExcelを全角のExcelに変換します。

例) =JIS("Excel")
結果) Excel


使い慣れてくると、
 「アンケートの集計」
 「連絡事項、備考欄からの検索」
 「複雑な条件を使って、データを分類する」
など、出番が多くなります。
皆さんの業務のどこに使えそうかを考えてみてください。



_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/

 ☆即席!マクロ&VBAの10行アイディア集

   
「該当する文字があるかどうか検索し、見つかったら選択する」


_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/

10行前後で作成可能なマクロとVBAを紹介していきます。

今回は『文字列を検索し、見つからなかったらメッセージボックスを表示し、
見つかったら該当するセルを選択する』マクロです。

Excelの「検索」コマンドに相当するFindメソッドを使います。
標準モジュールを挿入して以下のコードをコピーして実行してください。


≪マクロの作成例≫

Sub該当する文字を検索する()
  Dim該当セルAsRange
  Set該当セル=Range("A:A").Find(What:="エクセル", LookAt:=xlPart)
  If該当セルIsNothingThen
    MsgBox"見つかりませんでした。"
  Else
    該当セル.Activate
  EndIf
EndSub



≪このマクロについて≫

Findは、セルが見つかった場合はセルを表すRange型のオブジェクトを返し、
見つからない場合はNothingを返します。

実行結果を調べるためにRange型の変数 該当セル を宣言して使用していますが、
オブジェクト変数に代入するときは、先頭にSetをつけます。

LootAt:=にxlPartを指定すると、セルの一部が等しければ検索されます。
xlWholeを指定すると、セル全体と等しければ、検索されます。

このマクロは、A列から、エクセルという文字が含まれているセルを検索し、
見つかった場合は、最初の該当セルにジャンプします。



(実行結果)




プログラムを拡張して上手に使うと、VLOOKUP関数の代わりに活用することもできます。

皆さまのお仕事のヒントになれば幸いです。




≪実行前のお願い!/初めての方は必ずお読みください≫
※本コンテンツは弊社でExcelVBA入門講座を受講された方のスキルレベルを
前提としています。マクロは便利ですが、誤って実行すると業務に大きな
障害が生じます。マクロの実行時は実行環境を確認して、問題が起きないように
実行する方の責任を持って実行してください。

「マクロは使ったことがないけど、動かしてみたい」という初めての方は、
マクロの基本知識がある方に実行方法などを聞いてから実行してください。
ご参考までに簡単ですが、以下のHTML版ではExcelの操作画面も掲載しています。
http://www.3bitcom.jp/Excel-VBA-Access-Tips/0005.htm   (本ページURL)

※マクロは実行後に「元に戻す」コマンドが使えません。
実行前に開始するセルの場所を確認しておきましょう。


≪ヒント≫
※マクロ作成のためのエディタの起動は、ALT+F11です。
※標準モジュールの作成方法は、エディタ画面で[挿入]-[標準モジュール]です。




※作成したマクロを実行するときは ALT+F8 を押して実行するマクロを
 ダブルクリックします。




 

*★*――――*★**★*――――*★**★*――――*★*

 ◎コーヒーブレイク≡ちょっとPR≡

*★*――――*★**★*――――*★**★*――――*★*


◎3〜4月のセミナー日程を掲載中です。
  http://www.3bitcom.jp/page/seminar/Nittei.htm
 1〜2月はVBA関連講座と個別対応の講座(個別指導とIT業務サポート)
 が人気でした。

 ☆ Excel、Excelマクロ・VBA関連講座
  http://www.3bitcom.jp/page/seminar/Excel.htm
 業務が、データ量だけでなく、求められる処理も、複雑・多様化しているようです。
 セミナー時に、業務への応用方法についてかなり具体的なご質問をいただくケースが
 増えてきていますが、いずれも以前より難易度の高いスキルが必要とされているようです。
 
 ☆ Access関連講座
  http://www.3bitcom.jp/page/seminar/Access.htm
 年度末が近いせいか、業務の引継ぎや、既存のシステムの修正を目的としての
 ご参加が増えてきているようです。
 
 
◎IT業務サポート
  http://www.3bitcom.jp/page/seminar/Seminar_Support.htm
 ExcelやAccessを使った業務の「困った」「何とかしたい」「作りたい」「手伝って欲しい」
 のご要望にお応えしています。
 
 担当者単位、部署単位の小さいシステムの構築や、手間のかかる処理、間違いが
 あっては困るような計算の自動化など、様々なテーマを持ち込んでいただいています。
 多くの場合、業務に詳しいご担当者様が外注費をかけず、ご自分で仕様を決めながら
 短期に成果を出していきたいという目的でご参加いただいています。


◎2名様から出張研修
  http://www.3bitcom.jp/page/seminar/Onsite.htm

 先日、途中まで外注で作成してもらってあるシステムについて、その解析を行いながら
 今後は、ご自分たちでメンテナンスできるよう活用方法の業務支援に行ってきました。

 ITスキルが高い別の部署や外注で作成したシステムなどは、難易度が高いため、
 一般的な講習会に参加しただけでは、なかなか業務で使えるスキルが身に付きにくい
 という敷居の高さがあります。

 基本を習得した後に、自分の業務に当てはめて考える作業が、一番、手間も時間も
 かかるところになりますので、生データを使いながら、構築方法の考え方から
 今後の活用術までを覚えていただきました。





★・・・・★・・・・★・・・・★・・・・★・・・・★
 
 ◎最近のセミナーからの雑感

★・・・・★・・・・★・・・・★・・・・★・・・・★


最近の講習会で皆さまからいただく質問の傾向が変わってきていることを
感じます。

データ量が格段に増えてきていることは、この2年ぐらい感じてきて
いますが、求められる業務処理の難易度の高さ、複雑さが
最近、さらに急激に上がってきているように思います。

単に、そのソフトが持っている標準的な使い方をそのまま行っただけでは、
簡単には問題解決ができない場合もあり、発想を変え、一見すると一般的ではない
ように思える使い方を考えて、応用していく必要が出てくるケースもあります

ITを業務で活用するには、時に「こう使うべき」という既存の考え方を
捨てて、自由な発想で、ITツールで色々と「遊んでみる」という視点が
役立つように思います。

皆さまには、業務に精通しているからこそ思いつくアイディアが沢山あることと
思います。
ご自分の視点を大切にして、業務主体の目線で向き合うと、
また面白い使い方が出てくるように思います。

業務のご参考になれば幸いです。


明日から3月に入ります。
年度末に向けてお忙しい中、今月も皆さんのお仕事がExcel、マクロ、Accessなどを駆使して
スムーズに進みますように願っております!

最後までお読みいただきましてどうもありがとうございます。
また次号をよろしくお願いいたします!


─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─
 ☆メールマガジンの配信停止について
 本メールマガジンの配信停止をご希望の場合は、以下のURLより
 配信を停止するメールアドレスを入力の上、送信してください。
 送信先のアドレスを変更したい場合は、登録中のアドレスを配信停止後に、
 改めて送信希望先のメールアドレスで、配信の申し込みをしてください。
 (配信登録)  https://3bitcom.sakura.ne.jp/cgi-bin/MMT/MM.php
 (配信停止)  https://3bitcom.sakura.ne.jp/cgi-bin/MMC/MM.php
─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─



*・゜゜・*:.。..。.:*・゜゜・*:.。. .。.:*・゜゜・*:.。..。.:*
  <作成・配信> 
            株式会社スリービットコム
*・゜゜・*:.。..。.:*・゜゜・*:.。..。.:*・゜゜・*:.。..。.:*



         
         

Copyright(C)2024ThreebitcomCorporation.All rightsreserved.