栗林ゆき絵


(応用)その2「電子活用表」(エクセルVBA版)

目標(この課でつくるもの)
・動詞の不定詞(原形)を入力すると、活用形の一覧を自動生成して、エクセルのワークシートに表示するプログラム。
・ser, ir等の不規則性の高い動詞については、別シートに活用表を予め記載しておき、それを表示する。

言葉の規則を見つけ、それをプログラミング言語(VB)で記述することを通して、プログラムとは何かを理解する。


[1]電子活用表のしくみ

(1)サンプルファイルの動作確認

「授業用フォルダ」にて配布します。

・「開発→マクロ→マクロsheet1.inicio」、で起動。[⇒授業中にボタンによる起動に改良します。]
(クリアは 「開発→マクロ→マクロsheet1.clear」)

(2)電子活用表の考え方
動詞の活用のしくみ(ルールreglas)をプログラムにする。「手順を言語化したもの」

(例)ar動詞の現在形は、arを取ってo, as, a, amos, ais, an
(例)ponerの現在形は、1人称単数のみpongo, 他は規則活用er動詞と同じ
(例)接続法現在は、直説法現在1人称単数から語尾oを取ったものに、ar動詞ならe,es,...、er/ir動詞ならa, as, ...の語尾をつける
(例)接続法過去ra形は、直説法点過去3人称複数からronを取ったものに、ra,ras,ra, ramos, rais,ranをつける。 ただし、ramosの直前の母音にアクセント符号がつく。

[2]エクセルVBA

(1)エクセルVBAとは?
Visual Basic for Application
エクセルの中で動かすプログラムを作成するためのプログラミング言語。 基本的な部分はプログラミング言語VisualBasicによる。(機能限定版のVB)

エクセルVBAによるプログラムのように、あるソフトの内部での一連の処理を記述したものを「マクロ」と呼ぶ。

* 注意 *マクロはウィルスを含んでいることが多々あります!自分が作ったもの以外は信用しないこと!

[XP]
「ツール」→「マクロ」→「セキュリティ」
セキュリティレベルを通常は「高」にしておき、課題作成時のみ「中」にするとよい。
[VISTA, WIN7]
「開発」→「マクロのセキュリティ」→授業中のみ「マクロを有効にする」に変更。

(2)VBの基本文法
コメント行は「'」(半角アポストロフィ)始まり
文末は「改行」

1つの処理単位(サブルーチン)は Sub サブルーチン名 で始まり End Subで終わる。*VBでは「プロシージャ」と呼ぶ
1つのセルは、Range("セル番号") ... このほか大文字始まりの語はVBで指定された語(「予約語」)。

実際の文字列をそのまま書くときには"〜"でくくる。
変数名(例:verbo, gokan, etc.)やサブルーチン名(genzai, mirai, tenkako, etc.)は自由につけてよい(小文字はじまり)。

その他のポイント

Call サブルーチン名 ...別のサブルーチンを呼び出す

If 条件1 Then 処理1
ElseIf 条件2 Then 処理2
Else: 処理3
End If

*それぞれの処理の実行後はEnd If文の後の行からプログラムを続行する。
(文字列1)Like(文字列2) ...文字列1と2の比較
(文字列1) & (文字列2) ...文字列1と2の連結

Len(文字列) ...文字数のカウント
Left(変数x, 文字数y) ...文字列xを、左からy文字分、切り出す
Exit Sub ...サブルーチンを強制的に抜ける。不規則処理の後などに使用

[3]電子活用表・基本のアルゴリズム

[図解pdf」はこちら]

[4]作業手順

⇒以下の「課題」欄に指示された順に、活用形が正しく生成されるよう、プログラム(ルール)を追加。
1項目に対応したら、必ず保存して、シートに戻って動作確認すること!!
* 早期バグ発見のために、なるべくこまめに追加、保存、動作確認をすることが基本!!


○作業の予定(具体的な動詞は下記◎課題参照)
・1回目....未来形を参考に、過去未来形のサブルーチン(プロシージャ)を作成。現在形規則活用ir動詞に対応。現在形不規則対応ルール追加。不規則シート作成。
・2回目....点過去venir, decir追加と線過去規則活用ar動詞に対応。
・3回目....その他点過去不規則の追加。接続法過去の説明。
・4回目(自宅学習課題)....過去分詞、現在分詞不規則。できれば接続法現在に挑戦。


◎課題
conjugacion2009.xlsのマクロに以下の機能を追加して、提出。
★活用表プリント参照...ここに記載の動詞はできるだけ対応することを目指して!

1)過去未来形規則、不規則とも全て対応 ...(参考)未来形


2)現在形規則活用ir動詞...(参考)er動詞

ただしoir*→o'imosのアクセント符号にも個別に対応すること。...(参考dar)
(*不定詞入力時はアクセント符号をつけないものとする。⇒余力のある人はアクセントつき入力への対応法を考察すること。)

3)現在形完全不規則動詞「haber」および不規則シートir(シートには全時制を記入!)...(参考)estar/ser
4)現在形語幹母音変化「poder」「dormir」「volver」「pedir」...(参考)pensar,etc.
および単音節動詞「dar」「ver」「huir」の現在形2人称複数

5)線過去規則動詞-ar動詞

6)点過去不規則(強変化)「venir」「decir」...(参考)tener/traer, etc.
....[レベルA] ... 以上は全員。

7)点過去語幹母音変化「dormir」「pedir」...(参考)sentir および「huir」(hui)1人称単数アクセント符号対応

8)過去分詞不規則(プリント記載の語すべて)および 現在分詞不規則(プリント記載の語すべて)
*プリント記載の過去分詞・現在分詞のうち、規則的に(=プログラムで)生成できるものは、 不規則動詞処理のif文には入れないこと!

*下記の過去分詞も忘れず追加! (*過去分詞のみ不規則のため活用プリントには記載なし)
⇒abrir, escribir, cubrir, descubrir, imprimir, romper
⇒huir(過去分詞は規則的。iの上のアクセント符号不要。過剰修正(ultracorrección)されていないか確認)

9)jugar, enviar に対応。不規則シートに追加(初心者)/プログラムで処理(中級者⇒下記13相当)のいずれでも可。

....[レベルB] ...余力のある人は挑戦を!(プレミアム得点あり)

10)接続法現在形語幹母音変化「poder」「volver」...(参考)sentir,etc.
および単音節動詞「dar」の接続法現在2人称複数
11)「dormir」の接続法現在
12)語幹母音変化「encontrar」「seguir」の現在、点過去、および接続法現在
13)語幹母音変化「empezar」「jugar」をシートに追加しないでプログラム中で処理
* 語幹母音変化動詞を追加する場合は、同時に全ての時制に対応するのが望ましい。(途中で保留はバグの元!)

14)resolver, morir, freír,reír の現在・点過去・接続法現在・過去分詞・現在分詞 (対応方法は自由)
15)語幹母音変化のある-ir動詞の現在分詞(sentir→sintiendo, seguir→siguiendo等)を点過去語幹を利用してプログラムで生成。

....[レベルC] ...さらに余力のある人は挑戦を!(さらにプレミアム得点あり)


あて先: z2003222●rikkyo.ac.jp

CC:自分のアドレス
件名:スペイン語課題

◎課題締切
授業中に指示します。 ★途中まででも採点しますので、必ず提出してください。上記の何番まで対応したか明記のこと。


* 質問は自宅PCのアドレスへお願いいたします。
⇒kuriy●bk.iij4u.or.jp
なお件名を「スペイン語情報処理質問」としてください。

[3]エクセルのワークシートのレイアウト変更

* 文字やシートの背景色・罫線のデザインは自由に変更してください
* タイトル行は「セルを結合して中央揃え」
[XP...office2010の場合]
○マクロを起動するためのボタン(フォーム)をつけて、マクロを割り付け。
....(0)「ファイル」⇒「オプション」⇒「リボンの設定」⇒「開発タブの表示」にチェック
....(1)ボタンを貼り付ける⇒「開発」→「挿入」→「フォームコントロール」

....(2)ボタンを貼り付ける⇒フォームツールバーの「ボタン」アイコンをクリック→シート上の適当な位置に貼り付け。

....(3)マクロを登録・ボタン名⇒ボタンを右クリック「マクロの登録」「テキストの変更」

[VISTA, WIN7]
○マクロを起動するためのボタン(フォーム)をつけて、マクロを割り付け。
....(0)左上のボタンクリック⇒「Excelのオプション」→「開発タブをリボンに表示する」にチェック(*VBを使用するためにはこのチェックが必要です。)

....(1)ボタンを貼り付ける⇒「開発」→「挿入」→「フォームコントロール」

....(2)ボタンを貼り付ける⇒フォームツールバーの「ボタン」アイコンをクリック→シート上の適当な位置に貼り付け。

....(3)マクロを登録・ボタン名⇒ボタンを右クリック「マクロの登録」「テキストの変更」



[4]不規則動詞用ワークシートの作成

プログラム(ルール)で生成するのが難しい不規則動詞に関しては、 別のシートに活用表を記入しておき、それを表示する、というやり方もある。

⇒詳細は授業中にサンプルコードとともに説明。
「校閲」→「シートの保護」により、不規則動詞活用表のシートは書き換え不可とする。

BACK

Copyright(c) Yukie Kuribayashi