パソコンカレッジ スタッフのひとりごと

パソコンスクールのスタッフが、
初心者から上級者まで役立つ情報をお伝えします。

Wordを起動したときの書式やレイアウトを初期設定に戻す方法

2010-11-30 09:00:11 | ワード
おはようございます。今日はパソカレブログの読者さんからの質問を取り上げたいと

思います。

「Vista office2007で、Wordで文書作成をする時新規作成で、前に使ったインデントが

とれないので、毎回「段落」「段落のウインドウ」で直しています。

最初の状態に戻したいのですが出来ません。方法が有りましたら教えて下さい。」


はい直しましょう(*^_^*)

まず、Wordを起動した時に表示される新規白紙は、

「Nomal.dotm(2002/2003の場合はNormal.dot)」というテンプレート(ひな形)が

もとになっています。標準テンプレートとも言われますが、これが無いと

私たちは毎回Wordを起動するたびに、用紙サイズやフォント、フォントサイズを

設定してから文書の作成に入らないといけません。(これは面倒)

なので、あらかじめ初期の用紙サイズやフォントなどが設定された

「標準テンプレート」のコピーが新規白紙文書として表示されるのです。

(楽ちんですね)

で、

質問者さんの場合ですが、どうもこの標準テンプレートを書き換えてしまった

可能性が高いです。

実はこれは簡単にできてしますんです。私もインストラクターになりたての頃、

何度か間違えてクリックしてしまったことが・・(苦笑)

で、

標準テンプレートを元に戻す方法ですが

(準備) ※これは後で元に戻しますよ。元の設定を覚えておいてくださいね

まず、スタートボタンからドキュメントなどのウィンドウを表示し、

メニュー「ツール」→「フォルダオプション」→「表示」タブから

→詳細設定のなかの「すべてのファイルとフォルダを表示する」を選択し、

「登録されている拡張子を表示しない」のチェックをはずす→「OK」

ドキュメントなどのウィンドウを閉じる

(実行)

スタートボタン→コンピューター→このあとはダブルクリックしてフォルダを

開いていく

(C:)→ユーザー→「ユーザー名」→AppData→Roming→Microsoft

→TemplatesフォルダにあるNormal.dotmの名前を変更する(Normal1.dotmなど)

これで終わりです。

(操作方法が文章のみですみません。まだ私、XPなもので・・)

ウィンドウを閉じて、Wordを起動してみましょう。

元に戻っていると思いますよ(*^_^*)

※Wordは起動するときにNomal.Dotmが無い場合には自動作成するのです。

元に戻すというか新しく作ってしまいましたが、この方法が楽なのではと思い

ご紹介させていただきました。

ではがんばってやってみましょうね(*^_^*)

おっと

作業が終了したら、(準備)の部分を元の設定に戻しておいてくださいね


これからもどうぞよろしくお願いします。

mihoりん
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

今週のおすすめ記事

2010-11-27 09:01:02 | その他
みなさんおはようございます。今週は祭日があったせいか

あっという間に土曜日になってしまったような・・(*^_^*)

今日も3つの記事をピックアップしましたからご覧くださいね。

こだわりの自作PC

VBからAccessを起動する(Visual Studio2008)

表にデータを入力する度に罫線も引いてしまいましょう(Excel)


↑過去に見ていただいて覚えている方ももう一度クリックしてみてね(*^。^*)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ある数が別の数の倍数かどうかを判定する方法

2010-11-25 09:00:10 | エクセル
今日も、生徒さんからの質問を取り上げます。

「どうしたらいいもんかねえ。」

「どうしたんですか?」

「いやあ、ねえ、こんな課題をいただいちゃってね、上司から。
それが、どうしたらいいのか分からないんだよ。」

「どんな課題ですか?」

「こんなのだよ、先生」

見せてもらうと、以下のような課題でした。



「なるほど、基準値と実測値という2つの数値があって、実測値が基準値の倍数かどうかを判定しろってことだね。」

「そんなことできるんかいね。」

「一緒に考えてみましょう。まず、明らかにしたいのは、倍数とは、どういうことなのかということですよ。」

「?? そうだね。う~~ん。そうだ、基準値に2とか3とか10とかを掛けた数のことだね。」

「そうですよね、でも、18を掛けたかもしれないし、100かもしれません。」

「ふ~~ん、そうか!分かったぞ。基準値で割り切れればいいんだ!」

「その通りです。お見事。実測値を基準値で割って、余りが0なら、倍数です。」

「余りを求めるにはどうしたらいいのかい?」

「関数を使います。MODという関数です。試しにC列11行目に余りを求めてみましょう。」

「ほう、余りは、1.2だね。」




ここまで解れば、あとは簡単。C11の答えが、0ならば、倍数なので、結果は、○。
0以外ならば、割り切れないので、結果は、×。
これは、IF関数を使えばいいですね。

はい、できました。




めでたしめでたし、と、これで終わらないのが、今回のネタなのです。

基準値を、1.4に変更してみてください。
4.2 は、1.4 で割り切れるので、答えは0のはずですが、変な答えが出ています。

結果も、×になっていますね。



整数同士の割り算なら、こんな現象は起きませんが、実数となると、こんなことも起きるのです。こわいですね。

さあ、どうしたらいいでしょうか。

そうです。整数にしちゃえばいいのです。

今回は、小数点以下1桁なので、基準値と実測値を10倍してしまいます。
こうすれば、整数同士だから、きちんと答えが出ます。

結果も、ほら、ちゃんと○になったでしょ。
めでたし、めでたし。





だい
コメント (3)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

アイコンキャッシュがない?! 「IconCache.db」の復活方法。(XP)

2010-11-23 09:01:33 | WindowsXP・Vista・Windows7
過去の記事の「初心者でも出来る!メンテナンス方法 (XP)」で、「IconCache.db」ファイルを削除して
PCを再起動しても、「IconCache.db」ファイルが作成されないPCがまれにあります。

通常は再起動すれば「IconCache.db」ファイルが作成されるのですが・・・

そこで、今回は再起動しても作成されなかった「IconCache.db」ファイルの復活方法です。


まず、デスクトップ画面で右クリックして「プロパティ」をクリックします。
「画面のプロパティ」の「設定」タブで、「画面の色」を「中(16ビット)」に変更します。
(通常は「最高(32ビット)」になっています)



「C:\Documents and Settings\ユーザー名\Local Settings\Application Data」フォルダを開いて、
「IconCache.db」ファイルがあれば削除してPCを再起動します。(無い場合も再起動)

再起動したら「画面のプロパティ」で、「画面の色」を「最高(32ビット)」に戻します。



これで「IconCache.db」ファイルが作成されます。




お客さんのPCでも何台か「IconCache.db」ファイルが作成されなかったPCがありましたが、
上記の方法で復活する事ができました。

もし、「IconCache.db」ファイルが無い場合はお試しくださいね。



(ケン)
コメント (4)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

過去のおすすめ記事

2010-11-20 09:01:52 | その他
みなさんおはようございます。土曜日の「過去のおすすめ記事ご紹介」コーナーです(^^♪

今日も3つの記事をピックアップしましたからご覧くださいね。


そして、今日のパソカレスタッフは・・

だい先生とmihoりんは、個人レッスンと開発に張り切っています。。

けんけん(ケンさん)はうわさによると..昨日までのハードなスケジュールをこなし、今日は南の方の島へ○○を

食べに出掛けたとか・・(*^。^*)



では どうぞぉ(*^_^*)↓↓↓

Wordで文字を回転させましょう

文字の入力されたセルをすべて選択する(Excel VBA)

液晶モニタ購入時の注意事項


↑過去に見ていただいて覚えている方ももう一度クリックしてみてね(*^。^*)



コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Word2010 ワードアートを従来の方法で使う

2010-11-18 09:00:12 | ワード
いよいよ本格的に寒くなってきましたね。

教室では朝からストーブを点け、お部屋が暖まるとともに

やかんもシュンシュン鳴いております。

なんか暖かい感じがして好きなんですよね。ストーブ。

まぁそれはいっかぁ(*^_^*)

さて、生徒さんのパソコンもOffice2007/2010が増えてきました。

今日は最近ノートPCを購入したばかりのFさんが朝からレッスンに来てくれました。

「先~生、私はね、前に持っていたPCではワードアートを使ってみんなに

A4サイズのアルバムを作ってあげていたのよ~」

旅行好きのFさん。お友達との写真をたくさん配置して、ワードアートで

コメントを書いていましたね。

「なのにね、PCを新しくしたらワードアートの使い方が全くわかんなくなっちゃっ
たわ(泣)」

どれどれ、じゃあWordを起動してみてね。

前のバージョンのWordとは、見た目がガラッと変わってしまったから

コマンドボタンを探すのも大変だけど、そこはFさん、ちゃんとノートに書いて

あって、「えーと・・ワードアートは挿入タブを押して・・」

はい、その通りですよ。

「ほら見てください。ワードアートのボタンを押したら、前はワードアートギャラリーが表示されたのに、
今は(オシャレな)『A』がたくさん並んでいるんですぅ」



はぁなるほどね。

2007バージョンでExcelやPowerPointに搭載されたワードアートだわ

テキスト形式になっているんだよね

それがWord2010にも用いられたのね

わかった Fさん。やりやすいように直してあげますよ。

まずね、新規文書を作成した時に、もうワードアートを使うことがわかっているなら

すぐに ファイルタブ→名前を付けて保存→ダイアログが出てきたら、好きなファイル名を付けて→※ここから大事ですよ。
ファイルの種類「Word97-2003文書」を選択→保存ボタン

これで準備はOK!

(以前のバージョン形式で保存すると互換モードになり従来のパターンが出てくるようになります。)

では、もう一度ワードアートの挿入ボタンを押してみてね



「あっギャラリーが出てきたわぁ(*^_^*)」

「これでなんとか出来そうです。」

「やっぱり見慣れている方が安心です(笑)」


はい、そんなわけで

このあとも楽しいレッスンは続くのでした(*^_^*)

mihoりん
コメント (6)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

指定した行列番号のデータを表から取得する方法

2010-11-16 09:01:15 | エクセル
今日も、生徒さんからの質問を取り上げます。

「いよいよりんごの季節なんでよ、先生」

「信州のりんごは、本当に美味しいですからね。」

「それで、料金表をエクセルで作ったんですが、こんな感じです」




「ほほう、上手ですね。くだものが4種類もありますね。手広く作っていますね」

「まあ、それは気にしないでください。料金は、果物の種類と重量で決まるのですが、
それを指定するとすぐに料金が出てくるようにしたいのです。」


つまり、みかんの5kgだったら、6,000円という答えを出せるようにしたいということですね。」

「そうなんです。どんな関数を使ったらいいのでしょうか?」



「するどい! たしかにこんな時のための関数があるんですよ。
しかし、今回は、2つの関数に登場いただきますよ。」

「?」

「表のデータに対して、行番号と列番号を指定すると、その交点の値を求めてくれる関数があるんです。

でも、その行番号と列番号は、毎回違う可能性があるわけですよね。ももの料金が知りたいときもあるだろうし、
りんごの料金を知りたいときもある。3kgを知りたいときもあれば、15kgの料金を知りたいときもありますよね。」

「確かに。」

だから、まず、知りたい果物の種類が何列目なのかを明らかにする必要があるのです。
同様に、知りたい重量が何行目になるのかも同じようにして求めます。」

「そんなことができる関数があるのですか?」

「あるんですよ。試しに、みかんが何列目にあるかD列11行目に求めてみましょう。」




「関数の挿入」ボタンを押したら、MATCH関数を選択してください。





下の絵を参考に、引数を3つ指定してくださいね。できたら、OKをクリックします。」





2 という答えが返ってきましたね。みかんは2列目という意味です。



同様に、B列16行目に指定した重量が何行目に当たるかを、D列16行目に求めてみましょう。

やはり、MATCH関数を使ってくださいね。




5kgは、2行目という答えが返ってきました。





それでは、いよいよ今までに求めた答えを使って、料金を出してみましょう。

B列21行目を選んで、関数を挿入してください。
今回使用する関数は、INDEX関数です。




下の絵のような画面が表示されたら、上の方をクリックしてください。





下の絵を参考にパラメータ(引数)を指定してください。
できたら、OKを押してください。






すると、6,000円という正しい答えが返ってきました。






くだものをももに変えても、正しい料金が出てきますね。





INDEX関数と MATCH関数のみごとなコラボレーションでした。



だい
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

過去のお勧め記事

2010-11-13 09:01:02 | その他
おはようございます。

前回は、
「時々紹介される過去のお勧め記事、拝見し参考にさせていただいてます。今後ともこのような情報を発信して下さい。」
との、コメントをいただいてスタッフ一同大変嬉しく思っています。

今週も「過去のお勧め記事」いきますよぉ~!


あらら、列幅が違うのになぜ??--カメラの活用(Excel2000以降)

フリーグラフィックソフト GIMP

パソコンでオリジナル音楽CDを作りましょう


今回も、是非ご覧くださいね。

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

メーカー製PCのHDDを交換。

2010-11-11 09:01:30 | ハードウェア
最近、年間メンテナンスに入っていただいたお客さんのPCなんですが、遅いんです。
メンテナンスをして大分速くはなったんですが、それでもまだ遅い。

PCはSONYの「VAIO type L VGC-LM71B」。最近流行の一体型のPCです。



スペックは
OS:Vista HomePremium CPU:Core 2 Duo T7250 メモリ:1GB で、メモリがちょっとVistaでは
少ないですがそれ以外は問題ないスペック。

このPCはCPUとメモリがノートPC用でHDDはデスクトップ用の3.5インチで320GB(7200rpm)と言うちょっと
変わったPCです。(最近の一体型もみんな同じかな?)

そこで、お客さんと話をしてもう少しパワーアップしようと言う事になりました。
本来ならばまずメモリを増設するのが定石ですが、どうもHDDがネックになっているようです。


まず、現状のHDDを性能をベンチマークソフトで計測してみました。
ソフトは定番の「CrystalDiskMark」です。



遅い・・・ ランダムリードとライトなんかはノートPC用のHDDよりも遅いくらいです。
特に「4K Read[MB/s]」はメチャクチャ遅い。

「4K Read[MB/s]」の数値が体感速度には一番影響します。
これはランダムリードの速さでクラスタサイズ4KBの読み込み速度です。
これが一番OSの起動とかソフトの起動時間に影響するんです。

全体的にも通常の3.5インチ(7200rpm)のHDDの半分以下の性能です。
これが体感速度を遅くしていたのかな?


かなりHDDがヘタっているのかと思い、これも定番ソフトの「CrystalDiskInfo」で調べてみました。
実はこのPCは中古で買われたそうなので。



すると、「健康状態」が「注意」。不良セクタがあります。これはもう交換するしかないですね。


早速、HDDを物色して注文。HDDはWESTERN DIGITAの「WD5000AAKS(500GB)」です。
本当はもう少し性能が良いのをお勧めしたのですが、安いのが良いとの事で。

それにしてもHDDは安くなりましたね。このHDDで3,800円(送料込み)くらい。
2TBでも10,000円以下で買えますからね。


後日、HDDが届いてから交換。
このPCは一体型なので、バラすのにちょこっと苦労しましたが。

今の環境をそのまま移すには定番の「Acronis True Image」を使いました。
このソフトは元々はバックアップ用のソフトですが、「クローン機能」で新しいHDDに今の環境を
そのまま移行できるんです。

ちなみに「トライアル版」でも全ての機能が使えるので、HDDを交換する時は無料の「トライアル版」でも
いいですよ。


さて、HDDを交換して直後にベンチマークで計測。



このくらいの速度がでていれば問題ないですね。

↓は「CrystalDiskInfo」の画像です。




交換後、少し使ってみましたが全体的に速くなっています。
お客さんにも速くなったと喜んでいただきました。

後はメモリを増設すれば文句ないんですが、それは少し様子をみてからと言う事で。


今回はVistaのPCのHDD交換でしたが、XPのPCでHDDを交換する方が効果が高いですよ。
Vistaや7に比べてXPの方がHDDの性能がネックになっていますから。



(ケン)
コメント (4)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

スペース区切りのデータの各値をセルに展開する

2010-11-09 09:00:31 | ExcelVBA
さあ、今日はいい天気だなあ。
こんな日は、みんなもバシバシ、パソコンはかどってるだろうなあ。

空を見て、そんなことを思っていると、生徒さんがやってきました。

「先生、こんなミッションが上司から・・・」

「どんなミッションなんですか?ふむふむ、エクセルですね。」

「そうです。あるシステムから出力された数字の羅列があるのですが、
その数字をひとつずつセルに入れてほしいって言われたんです。」

「ははあ、スペースで区切られた数字の集合体ですね。」

見せてもらうと、こんな感じでした。




「確認したいのですが、上司の指示は、こういうことでいいのでしょうか?」

僕は、手入力で数字を入力して、生徒さんに見せました。





「そうなんです。先生。同じ行のC列から右方向にひとつずつ数字を入れていくんです。
でも先生・・・」

「どうしましたか?」

「手入力なら、僕でもできるのですよ。もっと簡単にできませんか?
今回のサンプルは、たった4行ですが、実際は、1000行くらいあるんですよ。」

「それは、手入力では大変ですね。分かりました。困ったときのVBAといいます。
プログラミングで、乗り切りましょう。」


そんなわけで、今回もエクセルVBAを駆使して、解決することになりました。

なお、今回の条件を整理しておくと、
スペースで区切られた数字は、いつも6個
スペースは、半角だけど、1個のときも2個のときもある。
今回のサンプルは4件だが、実際は何件あるか分からない。



プログラミングの際に、まず考えることは、何が処理の核心かということです。
それが分かると、そのために必要な情報は何かということも分かります。
そして、処理の結果をどうしたらいいのかを考えればいいのです。

少しだけ専門的な表現を使うと、入力→処理→出力 という一連の流れを押さえることが重要なのです。

今回の場合、核心の処理は、「スペース区切りのデータを各数値に分解する」ということです。

そのために必要な情報は、スペース区切りのデータ1件分です。
1件のデータをちゃんと分解できれば、後は、その作業の繰り返しに過ぎないからです。

この核心の処理は、ひとつのプロシージャとして記述します。
そのほうが効率的だからです。

なお、引数にデータ1件分を指定するのがミソです。

以下のようにコーディングします。

Private Sub SplitData(ByVal s As String, ByVal r As Integer)
  '引数sを空白で分割して、各数字をセルに代入
  '引数rは、セルの行番号

  Dim Data As String
  '行頭行末のスペースを削除
  Data = Trim(s)
  'スペースの数を一つに統一(置換を使う)
  Data = Replace(Data, " ", " ")
  Dim tmp() As String
  'Split関数を使ってスペース区切りで値を配列に格納
  tmp = Split(Data, " ")

  Dim i As Integer
  '配列の要素数だけ繰り返し
  For i = 0 To UBound(tmp)
    '配列のi番目の値をセルに代入
    Cells(r, i + 3).Value = tmp(i)
  Next

End Sub


参考までに、画像を載せておきます。





メインは、Split関数の部分です。この関数は、戻り値を配列として返します。
配列の個数は今回は必ず6個ですが、いくつか分からないとしても何とかなります。
それが、今回の UBound(tmp) の部分です。
配列の上限をこれで取得できるのです。
(ちなみに、VB.NET以降は、tmp.Length という書き方をします。)

なお、スペースの数を1つに統一するのに、いわゆる置換の関数を使うと楽です。
また、行頭のスペースを、Trim関数で削除しておくと、配列の最初の要素から数字を取り込むことができます。


あとは、このサブルーチンを使って1行ずつ処理を繰り返します。

以下のようにコーディングしてください。

Public Sub Main()
  '1行目から最終行までのデータを繰り返し処理

  Dim i As Integer
  Dim LastRow As Integer
  LastRow = Range("A65536").End(xlUp).Row

  For i = 1 To LastRow
    '1行ごとにサブルーチンを呼び出す
    Call SplitData(Range("A" & i).Value, i)
  Next
End Sub

画像は以下のとおりです。





最終行を取得する方法を覚えておくと便利ですよ。


実行すると、以下のとおりになります。





生徒さんも、うまくいきました。今日もがんばりましょう。


だい
コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

過去のお勧め記事

2010-11-06 09:02:07 | その他
おはようございます。

朝晩が冷え込むようになりましたね。温かいお鍋が恋しいなぁ・・と思う今日この頃
ですが、なんと!あっという間にもう週末じゃあないですか(*^_^*)
今日も過去のお勧め記事をみなさんにご紹介しますよ。


ブックを変更していないのに・・・

インターネット 速度測定

プロのお勧め!PCのメンテナンス用品


今回も、是非ご覧くださいね。

さて、次は今晩のお鍋の材料でも考えますか(*^_^*)


コメント (5)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ビューを切り替えるショートカットキー(Access)

2010-11-04 09:00:24 | Access(アクセス)
おはようございます。

今日はAccessネタでいきます。

「先生、ビューを切り替えるショートカットってないんですか?」

まだインストラクターになったばかりの頃は答えられなかった質問を

久しぶりにいただきました。

今ならお答えできますよ(*^_^*)

Ctrl+「,(カンマ)」→デザインビュー
Ctrl+「.(ピリオド)」→データシートビュー

に切り替えられます。

実はビューは何種類かあるんですよね。

テーブルの場合↓

データシートビュー
デザインビュー
データシートビュー
ピボットグラフビュー
ピボットテーブルビュー


クエリの場合↓

データシートビュー
デザインビュー
ピボットグラフビュー
ピボットテーブルビュー
SQLビュー

Ctrl+「,(カンマ)」を続けて押していくと上記の順で切り替わります。
Ctrl+「.(ピリオド)」を続けて押していくと上記の逆順で切り替わります。

ピボットなどのビューに切り替えることはあまりないと思いますので

Ctrl+「,(カンマ)」→デザインビュー
Ctrl+「.(ピリオド)」→データシートビュー

↑このように覚えましょう。マウスをコマンドボタンに移動する手間が
省け、けっこう快適です。

さて、フォームやレポートの場合は・・

どうぞ試してみてくださいね。

「ふぅん 勉強になりました。これって実はあまり知られていないんじゃ
ないですか?」

私もそう思います。

では楽しいレッスンを続けましょう(*^_^*)

mihoりん
コメント (3)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

組み合わせをすべて表示する-再帰呼出し-

2010-11-02 09:01:36 | ExcelVBA
今日は、組み合わせを取り上げます。

1から5までの数字を使って5ケタの数字を作ります。
例えば、12345 という感じですね。

さあ、全部でどのくらいの数字を作れるのでしょうか?

11111
11112
11113
11114
11115
11121
11122
11123
11124
11125
11131

という具合に、順番にきちんと考えていくと分かりますね。
分かりやすくするために、左から1ケタ2ケタと呼びます。
1ケタ目は全部で5通りあります。
2ケタ目も5通りあります。
3ケタ目も5通りありますね。

そうです。
5*5*5*5*5=3125 通りあるのです。

さあ、エクセルでこの組み合わせを全部表示してみましょう。


プログラムでは、こういう場合、配列を使います。

5ケタなので、要素数が5の配列を用意します。
左の要素から順番に0,1,2,3,4というインデックス(添え字)がつきます。

この各要素に1から5までの数字が入るのです。


繰り返し処理ということは分かりますね。
でも、5ケタあるので、繰り返しを5回入れ子にしなければなりません。
これは、大変なことです。
まあ、5回なら何とかなりますが、もし、これが10ケタだったら、えらいことです。
桁数が増えるごとに、コードも変更しなければなりません。
もっと、楽にコーディングできないものでしょうか。

実は、楽にコードを書く方法があるのです。
「再帰呼出し」という手法を使うのです。
最初は、とっつきにくいのですが、コードのシンプルさにきっと感動するでしょう。


VBエディターを起動したら、次のように記述します。

'配列の宣言
Private Combi(5) As Integer

Private Sub Permutation(n As Integer)
  '引数は桁
  Dim i As Integer

  For i = 0 To 4
    Combi(n) = i + 1
    If n = 5 Then
      '5けたになると書き出し
      OutPut
    Else
      'ここで再帰呼出し
      Permutation (n + 1)
    End If
  Next
End Sub




このPermutationというプロシージャが今回のキモです。
引数に桁数を指定します。
5ケタになるまで、自分自身の関数を呼び出します。
こんな書き方が許されるんですね。

なお、コードの中の OutPut というのは、サブルーチンです。
つぎのように書いてください。

Private Sub OutPut()
  '書き出しのサブルーチン
  Dim i As Integer
  Dim c As String
  c = 0
  For i = 1 To 5
    c = c & Combi(i)
  Next
  Dim TenkiRow As Long
  TenkiRow = Range("A65536").End(xlUp).Offset(1).Row
  Cells(TenkiRow, 1).Value = c

End Sub




これは、難しくありません。
ただ、セルに配列の値を書き出しているだけですね。

さあ、以上のサブルーチンを使うメインのプロシージャを記述します。


Sub main()
    'サブルーチンを呼ぶ
    Permutation (1)
End Sub




なんと、1行だけのコードでした。

さあ、マクロを実行します。

しっかりと書き出されましたね。





だい
コメント (4)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

【おすすめ】

パソコン買ったらまず入れる10のアプリ