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

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



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

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

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

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

今年も残すところあと僅かになりました。
師走で大変お忙しい毎日をお過ごしのことと思います。

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

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




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

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

   「DATE」

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


今回は、年・月・日を指定して日付を求める「DATE」関数をご紹介します。
年と月と日を別々に指定することができるので、日付の計算や、日付を使った
条件式の作成、カレンダーなどでに活用することができます。


≪関数の書式≫
DATE(年,月,日)


≪引数≫
年 = 年を表す値を指定します。
月 = 月を表す値を指定します。
日 = 日を表す値を指定します。


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


≪使用例≫
=DATE(A1,1,1)

セルA1に2012と入力されている場合はA3 の値は 2012/1/1 となります。




セルA4 に以下の式を入力して下方にコピーすると、簡単に1年分のスケジュール表が作成できます。

=A3+1

A1の年号を変更するだけで、全ての日付が指定した年の日付一覧に変更されます。



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

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

    「DATE」編

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


『IF関数とDATE関数を使って、
 「日付が特定の日を過ぎているかどうか」
 を調べるにはどうしたらよいでしょうか?』

例として2011年12月20日を過ぎているかどうかを
早速、前文のDATE関数を使ってみましょう。

A1に日付が入力されている場合に、B1に結果を表示する際の
作成例と関数の結果です。

例1) =IF(A1>DATE(2011,12,20),"過","未")
    A1に2011/12/19 が入力されている場合、
    結果は 未 と表示されます。



《ヒント》 過ぎているかどうかは、該当する日より大きいかどうかを求めるため > を使います。



上記の例で、日付を関数や数式を使わずに直接指定する場合は、DATE関数の代わりに
DATEVALUE関数を使うこともできます。

例2) =IF(A1>DATEVALUE("2011/12/20"),"過","未")
DATEVALUE関数の場合は "2011/12/20" のように
日付を""で囲って文字列として指定する必要があります。





《ヒント》
☆AccessでDATE関数と類似の処理を行いたい場合はDateSerial関数を使って
 DateSerial(2011,12,20) のように使用します。
    

≪応用例≫
DATE関数の3つの引数に計算式を使うと、
「何年何ヶ月何日後」の日付をを求めることができます。

『今日から1年3ヶ月7日後の日付を求める』にはどうしたらよいでしょうか?

セルA1に2011/12/14が入力されていて、
求めたい経過年数、月数、日数がセルB1〜B4に入力されている場合の作成例です。

例1) =DATE(YEAR(B1)+B2,MONTH(B1)+B3,DAY(B1)+B4)
    結果は・・・2013/3/21と表示されます。


≪ヒント≫
年数、月数、日数の一部だけを加算したい場合は、該当する引数にのみ足し算をします。
以下では、基になる日付2011/12/14の3年後を求めています。

例) =DATE(YEAR(B1)+3,MONTH(B1),DAY(B1))

使い慣れてくると、
 「締日、支払日、請求日などの日付の計算」
 「スケジュール表の作成」
 「工程管理」
など、出番が多くなります。
皆さんの業務のどこに使えそうかを考えてみてください。



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

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

   「Excelのワークシート関数を利用する」

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

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

今回は『ワークシート内で使える関数をVBAで利用するマクロ』です。
Excelのワークシート関数をVBAから呼び出すには、WorksheetFunctionプロパティを使用します。
標準モジュールを挿入して以下のコードをコピーして実行してください。


≪マクロの作成例≫

Sub累計値を求める()
  DoUntilActiveCell.Value=""
    ActiveCell.Offset(0,1).Value=Application.WorksheetFunction.Sum(Range(ActiveCell, Range("A1")))
    ActiveCell.Offset(1,0).Activate
  Loop
EndSub


≪このマクロについて≫
Applicationとは、この場合はExcelのことです。
Excelが持っているワークシート関数(WorksheetFunction)の中の
Sum関数を呼び出しています。

累計を求めるために、
現在のカーソル位置(ActiveCell)から セルA1(Range("A1") )までのデータの合計を求めています。
Rangeは第二引数を指定すると、 第一引数〜第二引数までの範囲を表します。

Sum関数の結果をアクティブセルに代入し、
その後、1行下にカーソルを下げます。

Do〜Loopは処理を繰り返し実行する場合に使います。
Doの後にUntilActiveCell.Value="" を指定すると、
アクティブセルが空欄になる迄、連続して処理を実行させる
ことができます。

このマクロは、
A1 から下に累計を求めたい数値を入力しておき、
カーソルを A1 に合わせてから実行すると
B列に B1が「100」、B2が「300」・・・のように累計値が求まります。
データ件数が多く、セル内に計算式を入力したくない場合などにも利用できます。

(実行前)




(実行後)



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



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

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

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


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




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




 

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

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

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


◎12〜1月のセミナー日程を掲載中です。
  http://www.3bitcom.jp/page/seminar/Nittei.htm
 11月後半からAccess、ExcelともにVBAを使った業務効率化への
 関心が高くなり、入門・中級・上級講座とも人気が集中しています。

 ☆ Excel、Excelマクロ・VBA関連講座
  http://www.3bitcom.jp/page/seminar/Excel.htm
 蓄積しているデータ量が著しく増加してきているため、
 手作業では間に合わないケース、ミスが増えているので何とかしたいケースなど
 VBAを使っての業務効率化のニーズが高まってきているようです。
 外注先に作成してもらった難易度の高いプログラムの場合でも、修正のコストと
 期限などの関係で、利用している担当者レベルで、頻繁に修正を行わなければ
 ならなくなっているケースも少なくないようです。
 
 ☆ Access関連講座
  http://www.3bitcom.jp/page/seminar/Access.htm
 各担当ごとに個別に管理している色々なExcelファイルを統合して、
 1つのAccessシステムとしてまとめようというニーズが増えてきています。
 データの集計目的でクエリを駆使する以外にも、フォームやレポートも使って
 システムを作成したいというケースでのご参加も増えてきました。
 
 
◎2名様から出張研修
  http://www.3bitcom.jp/page/seminar/Onsite.htm

 先日、データ量の急増に伴い手作業では作業が間に合わなくなってきた業務について
 ExcelVBAで伝票発行ツールを作成する業務支援に行ってきました。

 色々な部署が連携している業務では、データを手元に入手した後、
 データを加工して他部署に送るまでの期限が非常に短く、
 作業の遅延は、他部署の業務にも重大な影響が出るようです。
 
 非常に多忙な部署の場合には、講習会でスキルアップしながら業務を徐々に
 改善していくような時間的な余裕すら無いケースもあるようです。
 難易度の高いところや、プログラムの長くなるところは作成を代行し、
 完成したツールを担当者の方が解析しやすいような作成方法なども検討しました。

 
◎IT業務サポート
  http://www.3bitcom.jp/page/seminar/Seminar_Support.htm
 ExcelやAccessを使った業務の「困った」「何とかしたい」「作りたい」「手伝って欲しい」
 のご要望にお応えしています。
 差し迫った業務の効率化や、部署内のデータベースやシステムの構築など、
 他のシステムから入手できるデータの加工・再活用について、様々な現場のご要望が
 寄せられています。




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

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


下期に入ってから、スキルアップ以外にも、ツールの作成支援や、ITを使った
色々な業務の支援など、具体的な業務について改善策・解決策のご依頼をいただく
ケースが増えてきました。

ExcelやAccessには、色々な業種・職種に対応するために様々な機能が組み込まれていますが、
1つの業務の視点から見ると、その全てが必要になることはほとんどありません。

現在の作業を改善したい時は、
「○○をするには、何の機能を使えばよいか」
と考えるよりも、
「△△の機能は、この業務のどこに使える可能性があるか」
を考える方が、簡単に業務の改善に繋がることもあるようです。

ExcelやAccessというソフトウェアの視点から見ると、
「どういう機能があるかを覚える」
という発想になります。

一方、業務の視点から見直すと、例えば
「この業務を、この機能で処理しようとすると、どこで使えるか」
などについて考えてみることになると思います。

ソフトウェアの視点以外にも、業務主体の目線でITに向かい合うと
面白い使い方を思いつく機会が増えそうです。

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


年末に向けてお忙しい中、今月も皆さんのお仕事が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.