サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
www.nurs.or.jp/~ppoy
MATCH関数 範囲内の最右に入力された文字列を取得する方法 《MATCH関数》(2000,XP,2003) Excel のワークシートに、左から右へ順番に文字が入力されていて、その一番右の文字のみが必要な場合があります。 以下のような表があります。この表の 「直近値」 欄に、値を入れたいと思います。 勿論1つずつセルを選択しながら、全ての参照式を入れても良いのですが。 (例えば、I3セルに「=G3」、 I5セルに「=F5」とか・・・) これでは、効率が悪い上に最右列に値が入った場合、また最初から作り直す必要があります。 以下は、Excel の標準の関数を組み合わせて、最右列の値を取り出す方法です。 1月~6月欄は、全て入力されているとは限りません。 ところどころ抜けている場合もあります。 直近欄には、1月~6月の内、一番右に入力された値を表示したいと思います。 「I3」
Excel Access からテーブル(クエリ)をCSV出力する方法 《エクスポート定義不要》 (Ac2000,Ac2002,Ac2003) Access からテーブル (若しくはクエリの結果) を CSV ファイルとして出力する方法です。 CSV出力用のエクスポート定義は使用しませんので、作成する必要はありません。 出力場所はユーザのデスクトップです。同名のファイルは上書きされます。 以下のコードを、Access の標準モジュールに貼り付けてください。 Sub Tbl2CSV() 'テーブル(クエリ)を CSV形式で一括出力する 'エクスポート定義不要 2009/08/08 pPoy On Error GoTo Tbl2CSV_Err Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim stSQL As String
Macro コピペした(貼り付けた) データに ふりがな をつけるマクロ (Excel2002, Excel2003) Excel のワークシートに入力された漢字の 「ふりがな」 を取り出すためには、 通常 PHONETIC 関数 を使用します。 ところが、(コピペ) コピー・アンド・ペースト されたデータや、他のアプリケーション (例えばAccess 等) から出力されたデータには使用できません。 Excel のワークシートに直接入力されたデータにしか、ふりがな用の情報が存在しないからです。 存在しないふりがな用の情報を作成する為には、SetPhonetic メソッドを使用します。 ≪準備≫ ↓ これは、別のシートからデータを貼り付けたシートです。 ← D列に PHONETIC 関数を入力します。 すると、振り仮名ではなく、 元のセルの情報がそのまま表示 されてしまいます。
・Tables コレクションの取得 Sub docTest_Table1() Dim cnt As Variant cnt = ActiveDocument.Tables.Count MsgBox "本文には全部で " & cnt & " 個の表があります" End Sub ※ このコードを実行すると、現在表示されているワード本文にあるテーブルの数が表示されます。 ※ ヘッダなどの表は含まれません。 ・Tables(index) を使用して 1 つの Table オブジェクトを取得する Sub docTest_Table2() '表を文字列に変換する ActiveDocument.Tables(1).ConvertToText _ Separator:=wdSeparateByTabs End Sub ※ このコードを実行すると、作業中の文書の最初の表を文字列に変換します。 表組みが解
ワークシートのセル内にある、「長さ 0 の文字列」 は、非常に厄介です。 目で見ても、空白のセルと区別がつきませんが、値としては確実に存在します。 このデータを他のシステムに渡した場合、「Null 値」 と 「長さ 0 の文字列」 とが混在する可能性があります。 このようなデータは色々面倒な為、他のシステムに渡すデータを作成する際は、予め削除しておく必要があります。 ≪準備≫ 以下のような Excel のワークシートがあります。 ここに、サンプルとして 長さ 0 の文字列を作成します。 ※ サンプルデータ作成が不要な場合は、こちら からご覧ください。 B列には式が入力されています。 ※ 参考用に、B2 セルの式の内容を、 B10 セルに表示してあります。 この式は、B2 ~ B8 まで入力されています。 式の結果は、 A列の文字列が3文字のとき 『 OK 』 を表示
Excel のワークシートで全データに通し番号 (追番) を振る方法は簡単です。 「超簡単に連続番号を振る方法」 ただし、これをグループ毎にしかも順位を振りたい場合はちょっと困ります。 いちいち目で見て1グループ毎に順位を振るのは、時間も掛かるし間違いも出るので 問題外です。 以下は、指定されたグループ毎に、簡単に順位を作成する方法です。 ただしグループを識別するデータが別の列に存在し、順番に並んでいることが条件です。 以下のような住所録があります。 都道府県毎の参加人数の多い順に順位を出したいと思います。 順位は、「B列」 の 「都道府県ID」 毎に振ることとします。 同じ都道府県では順番に付番しますが、都道府県が変わった時点で、 新規に「1」 から番号を振ります。 また、同じ参加人数では同一順位とし、次の順位は欠番とします。 まず、A2 セルに以下の式を入力します。
【念の為の注意書きです。】 このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。 又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行してください。 ☆ 感想をお知らせください (直接ブラウザから送信致します。メールアカウントは不要です。) form mail はこちら Copyright(C) pPoy 2000-2011
Macro ABC ExcelVBAで自分自身を閉じる方法色々 《Quit メソッド》(Excel97,2000,2002) ExcelVBA で、自分自身を終了するのはタイミングが難しいです。 順番を間違えると、 Book を閉じても Excel が一人寂しく残されてしまったりします。 以下に、ExcelVBA で自分自身を閉じる方法をまとめてみました。
Macro 任意の範囲の整数の乱数を表示する関数 (Excel97,Excel2000,Excel2002) ExcelVBA での乱数の取得には、Rnd 関数を使用します。 但し、この関数で得られる数値は、「0以上1未満の小数値」 です。 たま〜に整数の乱数が欲しくなった場合は以下の関数が便利です。 これは指定した範囲内の整数の乱数を発生さます。 以下のコードを標準モジュールに貼り付けてください。 Function myRnd(MinX As Long, MaxX As Long) As Long '任意の範囲の整数の乱数を表示する Dim rc As Long rc = Int(Rnd() * (MaxX - MinX + 1) + MinX) myRnd = rc End Function ≪使用方法≫ ワークシートに直接入力します。 そのとき引数にはセル参照が使用できます。
Report 画像をテーブルに保存せず直接ファイルから印刷する方法 《イメージ コントロール》(Access97,Access2000,Access2002) Access ではテーブルの 「OLEオブジェクト型」 フィールドに、直接画像ファイルを 埋め込んで保存することができます。 ところが、Access は画像ファイルとの相性が悪いらしく保存する画像の量が多くなると 急激にデータベースサイズが肥大化します。 これを回避するためには、画像ファイルを Access 内に保存するのではなく、 ファイル名のみをテキスト型フィールドに保存し、印刷時に外の画像を呼び出して、 イメージコントロールにセットしてから印刷実行します。 ≪準備1≫ 画像ファイル名を保存する テーブルを用意します。 画像ファイル名用のフィールド名は、 「FileName」 とします。 画像ファイルは mdb フ
Access でフィールド数が少なく、データ量が多いものを出力するとき、 左右に並べて段組印刷したい場合があります。 以下はレポートで2段組印刷を設定する方法です。 ≪準備≫ ← のようなデータがあります。 県名別にグループ化し それをグループヘッダーにもっていくと 詳細欄に表示するデータは3列のみです。 これを左右2段に印刷します。 ≪1.≫ まず、一覧表示のレポートを作成します。 レポートは 「県No.」 でグループ化を設定します。 「県No.」 は表示せず、代わりに 「県名」 をグループヘッダーに表示します。 詳細セクションに配置した 「ID」 もあまり意味が無いので、 代わりに 「グループ毎の連番」 を 「No.」 として表示します。 グループフッターには、「参加人数」 の 小計 (sum) を設定します。 ページヘッダーには、詳細セクションに配置した項目名を表示し
Access に Excel のデータを読み込む場合、通常は TransferSpreadsheet メソッドを使用します。 それぞれのフィールド型は Excel の表の1番上 最初の数行 のデータ (見出しではなく、その下のデータ部分の1番上です) を JET が判断して決定しているようです。 大抵の場合これでうまくいきます。 ただし、1番上 最初の数行のデータが数値だった場合、2行目以降 下の方に文字列データがあったとしても、 Access 側のフィールド型を数値に決定してしまい、変更はできません。 この場合、そのフィールドにある文字列データは全てはじかれ、エラーデータとなってしまいます。 以下は文字・数値交じりのデータを Access にエラーを出さずに読みこませる方法です。 ≪準備≫ 実行前に、予め Access 側に仮のテーブルを作成してください。 仮テーブルの名称は
Macro 同じ値が連続している時上下のセルを結合する方法 (Excel97,Excel2000,Excel2002) CSV ファイルや他のデータベースなどから、Excel のデータを作った場合 (データベース形式) 、 分類などが連続して表示され、ごちゃごちゃと見にくいときがあります。 以下のマクロは、上の行と同じデータが入力されていた場合、上下の行を結合します。 Sub myMergeCell() '同じ値が連続している時上下のセルを結合する '2005/06/04 pPoy Dim i As Long, j As Long Dim myCol As Long myCol = ActiveCell.Column '現在の列指定 With ActiveSheet i = 2 '2行目から開始 j = i + 1 'ターゲット行番号 Do While .Cells
Form 画像をテーブルに保存せず直接ファイルから表示する方法 《イメージ コントロール》 (Ac97,Ac2000,Ac2002) Access ではテーブルの 「OLEオブジェクト型」 フィールドに、直接画像ファイルを 埋め込んで保存することができます。 ところが、Access は画像ファイルとの相性が悪いらしく保存する画像の量が多くなると 急激にデータベースサイズが肥大化します。 これを回避するためには、直接ファイルを Access 内に保存するのではなく、 ファイル名のみをテキスト型フィールドに保存し、画像は mdb の外に保存し、 必要なときにコードで呼び出して表示します。 ≪準備1≫ 画像ファイル名を保存する テーブルを用意します。 画像ファイル名用のフィールド名は、 「FileName」 とします。 画像ファイルは mdb ファイルと 同一フォルダに
Query 結合した他のテーブルのデータを元に削除するクエリ2 《削除クエリ・主キー》(Ac97,Ac2000,Ac2002) Access のテーブル内のデータを個別に削除したい場合があります。 削除するデータが少ない場合は、抽出条件を設定してから削除実行します。 但し、量が多くまたそのデータに規則性が無い場合、これを手作業で削除するのは大変です。 以下は、削除するデータの一覧を別テーブルに作成して置き、その値に一致したもののみ 削除する方法です。 但し通常は結合したクエリでは削除できません。 削除するデータのコード一覧が格納されているテーブルに 「主キー」 を設定すると 削除することが出来ます。
Excel に CSV データを取込んだ時など、日付が8桁の数値 (若しくは文字列) で作ってある場合があります。 このままでは Excel は、日付として認識できません。 以下は、これを日付型に変換する方法です。
Word のフィールドコードに使用する、日付表示形式スイッチをまとめてみました。 これは、VBA で使用する書式設定文字とは微妙に違っていますので注意が必要です。
Access側からExcelのシートをリンクする方法は簡単ですが、その逆もたまにあります。 例えば、Accessでは作業できないがExcelなら大丈夫という方にはお勧めです。 これは、Accessのデータに変更は加えられず、単にExcel側からAccessデータを読むに留まります。 ですので、データに変更を加えて欲しくないときなど、最適でしょう。 Excel2002 の場合、「データ」 − 「外部データの取り込み」 − 「新しいデータベース クエリ」 を クリックすると、自動的に MS Query をインストールする態勢になります。 同時に ODBC ドライバもセットアップされます。 (インストールのメッセージが出ない場合は、既にセットアップ済みです。) この Query の設定は Book 自身に保存されます。 Excel2000 の場合は、予めアドインの設定
Query オブジェクト名一覧を表示するクエリ 《選択クエリ》 (Ac97,Ac2000,Ac2002) Access のクエリで、オブジェクト名一覧を表示する方法です。 Access データベースの情報は、システムテーブルである、"MSysObjects" テーブルに 格納されています。 以下はこのテーブルを使って、クエリでオブジェクト一覧を表示する方法です。 クエリのデザインで SQL 画面を表示し、そこに以下の SQL 文を入力してください。
'カレントフォルダ内のブックを開く →「本.xls」 Workbooks.Open "本.xls" Workbooks.Open Filename:="本.xls" 'こちらの方が解りやすい
DOS フォルダのツリー構造付きファイル一覧作成方法 (WindowsNT,Windows2000,WindowsXP) PC 内のフォルダやファイル一覧は、エクスプローラで表示することが出来ます。 フォルダの階層構造は全て表示することができますが、ファイル一覧は選択されたフォルダ内のみです。 以下はツリー構造ごと、ファイル一覧をテキストファイルとして出力する方法です。 これには、DOS の 「Tree」 コマンド がとても便利です。 但し、このコマンドは NT 系のみに実装されています。 Windows98 及び WindowsME には在りません。 面倒でも、NT 系のマシンから作成する必要があります。
Module 文字列内のハイフンや空白を削除・文字を置換する関数 《Access2000風 replace関数》 (Access97用) Access2000 からは、Replace関数が使用できます。 これは、文字列内の空白やハイフンを削除したり、特定の文字を置き換えたりする時に 非常に便利です。 ところが Access97 にはこの関数はありません。 仕方がないので作ってみました。 以下の文を標準モジュールに貼り付けてください。 (この関数はそのまま Excel97 でも使用できます。) ≪標準用≫ Function myReplace(ByVal myString, ByVal myFind, ByVal myRp) 'Access2000風 replace関数 (Access97、Excel97用) '複数文字対応 2003/10/11 pPoy Dim
ワークシートに入力されているデータの中から、重複しない物だけを取り出す方法です これは、「フィルタ」 の機能を使うと簡単です。 左のデータの中から、「商品名」 の一覧を取り出します。 まず、データの塊の中のどこかを選択します。 つづけて、メニューから、 「データ」−「フィルタ」 を選択します。 その中の 「フィルタ オプションの設定」 を押します。 ≪注意≫ ・ データは 「リスト形式」 であることが条件です。 ・ 「列見出し」 が必要です。 列見出しが存在しない場合、先頭の行が列見出しとして扱われ、結果が1件重複する場合があります。 ・ 「空白行」・「空白列」 があった場合、そこがリストの境界と判断されます。 (2007/05/06) 「抽出先」・・・「指定した場所」 「リスト範囲」・・・範囲が正しければそのまま 「検索条件範囲」・・・複
Form コンボボックスでコードを使わずにサブフォームを絞り込む方法 《メインとサブフォームのリンク》(Ac97,Ac2000,Ac2002) サブフォームに表示するデータを、指定した条件で絞込みたい場合があります。 通常はフィルターなどを使用して絞込みます。こちら を参照。 コード無しでも、メインフォームとサブフォームに、「リンク」 を設定するだけで 絞込みが実行できます。ただし、両方のフォームが 「連結フォーム」 であることが条件です。
Range("A1").Select Cells(1,1).Select Cells(1,"A").Select [A1].Select ・・・(注:補足参照)
おまけのゲームです。お仕事で疲れた時、お昼休みにでもこっそり遊んでくださいね? Knock Out でも、結構難易度高いです。(T_T) Excel の方には簡単なものがあります。 そちらで練習してからこちらをどうぞ。 Excel Tips Menu の 一番下 です。 ←Top Query Form Report Sub Function Excel Etc. 【お知らせ】 「Access Tip's Menu」 の量が増え、かなり重くなってきましたので、オブジェクト毎にページを分割しました。 上のお花のボタンで、それぞれのメニューページにジャンプできます。 【念の為の注意書きです。】 このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。 又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行して
Excel で、シートのコピーやグラフのコピーをした時など、気付かない内に コピー元のブックとの間にリンクが設定されてしまうことがあります。 このようなブックは開くたびに、リンクの更新のメッセージが出てきて鬱陶しいです。 また、別の部署から送って貰ったファイルなどでは、存在しなリンク先となってしまいます。 これを手作業で全てのシートのリンクを解除するのは面倒です。 これはアクティブなブックの外部リンク (Excel ファイルのみ) を、自ブックに変更、 若しくは値に変換するマクロです。 以下のコードを標準モジュールに貼り付けてください。 Sub myChangeLink() 'アクティブブックの外部 ExcelBookへのリンク先を '自ブックに変更or値に変更する 'Excel2002 のみ (2003/11/03 pPoy) On Error GoTo Err_myChan
次のページ
このページを最初にブックマークしてみませんか?
『www.nurs.or.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く