• 検索結果がありません。

情報資源組織演習B:

N/A
N/A
Protected

Academic year: 2021

シェア "情報資源組織演習B:"

Copied!
19
0
0

読み込み中.... (全文を見る)

全文

(1)

情報資源組織演習A

(書誌の作成)

2013年度 跡見学園女子大学文学部准教授 福田 博同

第13回

書誌 データ管理・検索システムの構築

第14回 ネットワーク情報資源のメタデータ作成の実際 第15回 まとめ

(2)

検索システムの構築(静的データベース)

第12回で

HTMLファイル

Google検索窓

埋め込む方法

理解

した。

今回:ExcelのVBAを使い、データベース的検索処理

を行う

ここでは必要最小限のみ説明する

基礎

学ぶ必要があり

、公式サイト以外に「Office TANAKA / 田中亨氏」、「よねさ

んのWord と Excelの小部屋」、「Office Pro / Tatsuo Ikura 氏」、「モーグ」、「わずかな 知識でVBA! /上田誠氏」、「Excel VBAによるマクロプログラミング / 斉藤俊則氏」等々、

無数

にある

Web上

好教材

を参照し、

自習

されたい

使用ソフト:Microsoft Excel または、Open OfficeのCalc

手順:

1. Excel マクロで見本分を理解

2. Excel VBAで見本分を理解

3. Excel VBAでプログラムを実行

(3)

処理の概要

(必要部分のみの解説

)

Excel には、マクロとVBAがある。

• マクロは手順を記憶し、登録するといつでも利用できる(大幅な効

率化が図れる)

– 手順の結果内容が表示される。処理を理解する。

– マクロの限界:作業手順変更、繰り返し処理の対応など→VBAを利用す

– マクロの実態はVBAであるが、手順部分を分かるようにしているプログ

ラム。

• VBAとはVisual Basicというプログラムである。

XMLファイルに変換したり、外部ファイルを処理したり、様々な処理がプログラ ムで可能。見本分で理解する。

では、マクロから始める。

(4)

マクロの操作

1. 見本ファイル

wakaData.xl

sx

」のワーク

シートSheet1

のB列(項

目)で「日本」

を探す

2. マクロを記録

する:手順

表示→マクロ

→マクロの記

☆ここから記

録が開始され

(5)

マクロ名を入れ、検索マクロを作る

1. マクロ名に「B

列キーワード

検索」と入れ、

Enterしてみよ

2. 記録が開始

される。

(6)

検索マクロの手順を行い記録終了

1. Bをクリック:B列が選

択される

2. Ctrl + Fキーを入れる

「検索と置換」窓が出

3. 検索する文字列に日

本と入れる

4. 次を検索をクリック

1. 検索窓を閉じて

2. 表示→ マクロ→

3. 記録の終了をクリック

4. すると

(7)

マクロファイル名を保存するが、、、

1. マクロ画面が

でて、

2. ファイル→ 保

存(Ctrl + S)で

3. マクロなしの

ブックに保存

できませんと

言われ

4. いいえと入れ

ます

(8)

マクロ有効ブックで保存→ 実行

1. ファイルの種類

2. Excel マクロ有

効ブックにする。

3. 和歌デー

タ.xlsmで保存

される。

4. では、実行して

みよう

5. Alt + F8キーで

「B列キーワー

ド検索」を実行

してみる

(9)

検索が実行される→ シートに埋め込む

セルB12へ移動した

シートにマクロ枠を作る

挿入→ テキスト→ テキ

ストボックス→ 横書きテ

キストをクリック

(10)

検索が実行される→ シートに埋め込む

横書きテキスト枠を右下へ

(11)

マクロ枠作成完了

• マクロの登録で

B列キーワード検索を選び

OKすると登録される。

• 次回からは、マクロ枠をク

リックすると利用できる

• 繰り返し処理などはVBAで行

う。

• つぎはVBAを学ぼう

(12)

VBAでデータベース的検索処理

• 「B列キーワード検索」マクロでSelection.Find(What:=“日本”…が検索

の方法かな?と理解されたであろうか?

• 文字列検索法は、Findメソッドや、Filterメソッドがある

• まず、Findメソッドで試してみる

• Alt + F11キーでVBAエディタを出す

• スペースや英数記号はすべて「半角英数」。

Office TANAKA

すべて検索する を参考に、変数を日本語にかえ、検索語を日本 にしてみる。 Sub 見つかったセル() Dim 見つかったセル As Range Set 見つかったセル = Cells.Find(What:=“日本") If 見つかったセル Is Nothing Then MsgBox "見つかりません" Else 見つかったセル.Activate End If End Sub 解説は次ページ

(13)

VBAの基本

Sub マクロ名() で始まり

End Subで終わる

Dim 見つかったセル As Range

変数を使う。変数とは入れ物で、

中に入るものが変わる。使う時は

Dimで宣言する。変数名は日本

語でも可能になった(「見つかった

セル」は変数)

As Rangeはセルの意味。型には

Stringが文字列, integerが整数、

などがある。

参照:エクセル大辞典 / 武 藤玄氏

(14)

VBAの基本 if then else

Set 見つかったセル = Cells.Find(What:=“日本”)

“日本”という文字列のあるセルを

「見つかったセル」という変数に入れなさい(

詳細解説日経PC21

If

見つかったセル Is Nothing

Then

MsgBox “見つかりません”

Else

もし(

If

)~~なら、

Then

○○して

そうでないなら(

Else

)△△しよう。

そして、Ifを閉じよう(End If)

MsgBoxはメッセージボックスが

出ます。保存したら

マクロを表示して、実行してみる。

見つかったセル.Activate で

C4セルに移動する

(15)

VBAの基本

検索ボックスから入れる

次の見本はVBAを編集せずに、検索ボックスを出してキーワードを入れる方式。

参照:「文字列検索-Findメソッドの応用 / モーグ」 「実は奥が深いInputBox / Office TANAKA」,「Excel VBA入門講座ほか

前回:Sub 見つかったセル()

Dim 見つかったセル As Range, 最初のセル As Range, ターゲット As Range Set 見つかったセル = Cells.Find(What:=“日本")

今回:Sub キーワード検索()

Dim 見つかったセル As Range, 最初のセル As Range, ターゲット As Range, キーワード As String

キーワード = Application.InputBox(“キーワードを入れよう”, “検索”, Type:=2) ‘Application.InputBoxはタイプを指定した入力窓です。Type:= 2は文字列です Set 見つかったセル = Cells.Find(What:=キーワード) If 見つかったセル Is Nothing Then MsgBox "見つかりません" Exit Sub Else Set 最初のセル = 見つかったセル Set ターゲット = 見つかったセル End If Do Set 見つかったセル = Cells.FindNext(見つかったセル) If 見つかったセル.Address = 最初のセル.Address Then

Exit Do Else Set ターゲット = Union(ターゲット, 見つかったセル) End If Loop ターゲット.Select

MsgBox ターゲット.Count & "件見つかりました" End Sub

(16)

VBAの基本 If Then Else | Do Loop

では、次のように書き直そう

Sub 見つかったセル()

Dim 見つかったセル As Range, 最初のセル As Range, ターゲット As Range Set 見つかったセル = Cells.Find(What:=“日本") If 見つかったセル Is Nothing Then MsgBox "見つかりません" Exit Sub Else Set 最初のセル = 見つかったセル Set ターゲット = 見つかったセル End If Do Set 見つかったセル = Cells.FindNext(見つかったセル) If 見つかったセル.Address = 最初のセル.Address Then

Exit Do Else Set ターゲット = Union(ターゲット, 見つかったセル) End If Loop ターゲット.Select

MsgBox ターゲット.Count & "件見つかりました" End Sub

そして、前回のようにマクロ枠を作ろう。Do Loopは繰り返し行え、の命令なので、Exit Do がないと無限 ループになるので忘れないように。

(17)

フィルタによる検索色付け

文字列の中を変えるには「Findメソッドでのデータ検索 / よねさん」等を参照しよう まず、見つかったセルを緑色にしよう

Sub 列Bからキーワードをフィルタで検索し色づけ() '

Dim 入れ物 As Object, キーワード As String

Columns("B:B").Select '列Bを選んで

With Selection.Interior 'End Withまで、Interiorことセルの内部を選ぶ

.Pattern = xlNone 'セルのパターンを修飾しない

.TintAndShade = 0 '色の明暗を標準に

.PatternTintAndShade = 0 '網掛けをなしに

End With

キーワード = Application.InputBox("キーワードを入れよう", "検索", Type:=2) For Each 入れ物 In Range("B:B") 'B列で、各「入れ物」の

If 入れ物.Value Like “*” & キーワード & “*” Then ‘「入れ物」のセルにキーワードがあれば

入れ物.Interior.ColorIndex = 4 '「入れ物」のセルを緑色にする

End If

Next 入れ物 End Sub

(18)

フィルタによる検索色付け

次に、それを緑色にしよう

Sub 緑色フィルタにする()

Columns("B:B").Select

Selection.AutoFilter

ActiveSheet.Range("B:B").AutoFilter

Field:=1, Criteria1:=RGB(0, 255 _

, 0), Operator:=xlFilterCellColor

End Sub

Sub フィルタをもどす()

'

' B列フィルタをオートにする

Columns("B:B").Select

Selection.AutoFilter

End Sub

Sub 色フィルタをなくす()

' 色フィルタをなくす Macro

Columns("B:B").Select

With Selection.Interior

.Pattern = xlNone

.TintAndShade = 0

.PatternTintAndShade = 0

End With

With Selection.Font

.ThemeColor =

xlThemeColorLight1

.TintAndShade = 0

End With

End Sub

(19)

Excel VBAのデータベース的扱い

以上でExcel VBAによるデータベース的扱いのほん

のさわりを見た。

ただ、本格的データベースソフトではないので限界

は前述した。Microsoft Access やSQLも挑戦しよう。

しかし、

Excel上、Webデータを取り込んだり、AccessやTextな

ど他形式のファイルもやりとりできる。もちろん、

HTMLファイルやXMLファイルも出力できる。

そこで、

ExcelからXMLデータ出力により、XMLデータベース

の構築もできる。次回はXMLデータ出力を実習する。

参照

関連したドキュメント

文字を読むことに慣れていない小学校低学年 の学習者にとって,文字情報のみから物語世界

日本の生活習慣・伝統文化に触れ,日本語の理解を深める

原記載や従来報告された幾つかの報告との形態的相違が見つかった。そのうち,腹部節後端にl

る、というのが、この時期のアマルフィ交易の基本的な枠組みになっていた(8)。

○金本圭一朗氏

彼らの九十パーセントが日本で生まれ育った二世三世であるということである︒このように長期間にわたって外国に

日中の経済・貿易関係の今後については、日本人では今後も「増加する」との楽観的な見

2019 年 12 月に中国で見つかった 新しいコロナウイルスの感染が 日本だけでなく世界で広がってい