WEBサイト「教員のための三四郎活用術」を
オープンしました。これから、コンテンツを
充実させて参ります。よろしくお願いいたします。m(__)m
« 2007年3 月 | メイン | 2007年5 月 »
WEBサイト「教員のための三四郎活用術」を
オープンしました。これから、コンテンツを
充実させて参ります。よろしくお願いいたします。m(__)m
投稿情報: 午後 05時46分 カテゴリー: くまぷーのひとりごと | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:いよいよ、今回が最終回だ。AK3に授業日数を
入れる仕様になっているので注意してくれ。下が出欠欄に
関するコードだ。
%授業日数=Range("AK3")
For %i = 8 To 52
!!出席すべき日数
!!=授業日数-出停・忌引の日数
Cells(%i, 33)=%授業日数-Cells(%i, 32)
!!出席日数
!!=出席すべき日数-欠席日数
Cells(%i, 35)=Cells(%i, 33)-Cells(%i, 34)
Next
【´・ω・`】:コメントを見れば解説は要らないと思う。
一応、成績一覧表のコード全てを掲載しておく。
!!科目別成績
For %列 = 4 TO 26 Step 2
%科目=0
%科目受験者=0
%科目平均=0
For %行 = 8 To 52
%科目 = %科目 + Cells(%行, %列)
If Not IsBlank(Cells(%行, %列)) Then
%科目受験者 = %科目受験者 + 1
End If
Next
If %科目受験者>0 Then
%科目平均= %科目/%科目受験者
End If
Cells(53,%列)=%科目
Cells(54,%列)=%科目受験者
Cells(55,%列)=%科目平均
Next
!!個人別成績
for %j =8 To 52
%得点=0
%科目数=0
for %i = 4 To 26 Step 2
%得点=%得点+Cells(%j, %i)
If Not IsBlank(Cells(%j, %i)) Then
%科目数=%科目数+1
End If
next
If %科目数>0 Then
%平均=%得点/%科目数
End If
Cells(%j, 29)=%得点
Cells(%j, 30)=%平均
next
For %i = 8 To 52
Cells(%i, 31)= Rank(Cells(%i, 29),Range("AC8:AC52"))
next
!!出欠席
%授業日数=Range("AK3")
For %i = 8 To 52
!!出席すべき日数
!!=授業日数-出停・忌引の日数
Cells(%i, 33)=%授業日数-Cells(%i, 32)
!!出席日数
!!=出席すべき日数-欠席日数
Cells(%i, 35)=Cells(%i, 33)-Cells(%i, 34)
Next
Function Rank(%個人得点,%母集団) As Integer
%順位=1
For %i = 1 To Size(%母集団)
If %母集団(%i) > %個人得点 Then
%順位=%順位+1
End If
Next
Rank=%順位
End Function
【´・ω・`】:最後に完成見本ファイルを用意したのでDLして
参考にしてくれ。
投稿情報: 午前 01時35分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
このブログを始めたのが3月の29日です。
ちょうど1ヶ月経ちました。この間、1日も欠かさずに
更新し続け、気がつくと投稿数も120を超えてしまいました。
・・・でそうなるとブログって通常のHPに比べて
手軽ではあるけれど、いくら「カテゴリー」で分類しても
前にどんな題材を扱っていたかわからなくなっちゃうんですね。
一目でどこを見れば、何をやっているかわかるという
一覧性が悪いということがわかりました。
・・・今、このブログで扱った内容をもとに
通常のWEBサイト「教員のための三四郎活用術」を
立ち上げる準備をしています。(^^ゞ
投稿情報: 午前 06時32分 カテゴリー: くまぷーのひとりごと | 個別ページ | コメント (3) | トラックバック (0)
(●`ε´●):え~と、順位の出し方は・・・・
まず自分の順位を1位として・・・
自分よりいい成績の奴がいたら・・・
その度に自分の順位に1を増やせばいいんだな。
【´・ω・`】:うん、そう。自分より上の奴がひとりなら、自分の順位の1位に
1を足して2位になる。もうひとり、自分より上の奴がいたら
今度は自分の順位の2位に1を加えて3位になるというわけだ。
コードは下のようになる。
Function Rank(%個人得点,%母集団) As Integer
%順位=1
For %i = 1 To Size(%母集団)
If %母集団(%i) > %個人得点 Then
%順位=%順位+1
End If
Next
Rank=%順位
End Function
【´・ω・`】::個人別の得点合計、平均、順位を求める式は
下のようになる。
for %j =8 To 52
%得点=0
%科目数=0
for %i = 4 To 26 Step 2
%得点=%得点+Cells(%j, %i)
If Not IsBlank(Cells(%j, %i)) Then
%科目数=%科目数+1
End If
next
If %科目数>0 Then
%平均=%得点/%科目数
End If
Cells(%j, 29)=%得点
Cells(%j, 30)=%平均
next
For %i = 8 To 52
Cells(%i, 31)= Rank(Cells(%i, 29),Range("AC8:AC52"))
next
Function Rank(%個人得点,%母集団) As Integer
%順位=1
For %i = 1 To Size(%母集団)
If %母集団(%i) > %個人得点 Then
%順位=%順位+1
End If
Next
Rank=%順位
End Function
(●`ε´●):次は出欠欄か。いよいよ、ゴールが見えてきたな。
投稿情報: 午前 04時47分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
(●`ε´●):今回は順位を求めるんだよな?
【´・ω・`】:うん。
(●`ε´●):おいら、Rank関数以外ではどうやればいいのかわからないよ。
【´・ω・`】:今までやった得点合計・受験者数・平均に比べれば
ちょっと頭を使うかもしれないが、落ち着いて考えれば
当たり前のことなので、しっかりついてきて欲しい。
(●`ε´●):おいら、数学は苦手だぜ。
【´・ω・`】:大丈夫。考え方は小学生でもわかると思う。
(●`ε´●):小学生でも、か・・・。プレッシャーがかかるぜ。
【´・ω・`】:まあ、気楽に・・・。考え方はこうだ。
ちょっとイメージして欲しい。いいかい。
(●`ε´●):おう。
【´・ω・`】:今、試験が終わったところだ・・・。べべちゃんは思いの外
試験ができた。「俺って天才!」って気分だ。。
「俺って天才!」って気分なのだから、当然オイラが
一番って気分だ・・・。
(●`ε´●):うん。
【´・ω・`】:ところが時間が経って落ち着いてくると周りが見えてくる・・・。
クラスメートの悪児さんがいた。彼は俺よりできそうだ・・・とおもう。
自分より出来る奴の顔がひとり浮かんだ。この時点で
(●`ε´●):一番だったはずが二番になった・・・。
【´・ω・`】:もっと落ち着いてくるときっちーさんの顔も浮かんできた。
あいつも俺より出来そうだ。すると・・・
(●`ε´●):二番だったのが三番に・・・。
【´・ω・`】:そう、自分より成績のいい奴が現れるたびに順位が
1ずつ増加していくんだ。
つまり、順位を求めるときは最初に自分の順位を1位と仮定して
自分よりいい成績のものがあらわれるたびに順位を1だけ増加させればいい。
(●`ε´●):な~るほど。
投稿情報: 午後 10時21分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:さて今回は個人別の得点合計、平均を求めるコードを
書いてみようか。
(●`ε´●):科目の評価(得点)と欠時が交互に並んでいるから
得点の合計を求めるためには一つおきに足していかなければ
ならないな。
【´・ω・`】:こういうときはforループにStepキーワードをを組み合わせるといい。
(●`ε´●):Step?
【´・ω・`】:ワークシート関数のSumStepと同じ感覚だ。
書式は・・・
For %i = 開始値 To 終了値 Step n
(何かの処理をするコード)
Next
・・・だ。(nは整数)
こうすると%iの増加分がnになる。
(●`ε´●):ではこの場合はStep 2 とすればいいのか?
【´・ω・`】:うん。で・・・コードは下のようになる。科目別で得点合計や
平均を求めたときと考え方は同じなのでコードの意味が
解らない場合は前の方に戻って欲しい。
for %j =8 To 52
%得点=0
%科目数=0
%平均=0
for %i = 4 To 26 Step 2
%得点=%得点+Cells(%j, %i)
If Not IsBlank(Cells(%j, %i)) Then
%科目数=%科目数+1
End If
next
If %科目数>0 Then
%平均=%得点/%科目数
End If
Cells(%j, 29)=%得点
Cells(%j, 30)=%平均
next
(●`ε´●):次回は順位を求めるコードだな?
【´・ω・`】:うん。
投稿情報: 午前 05時41分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:さて前回までで成績一覧表の科目別の
合計点、受験者数、平均点を表示する部分が
できたので、そこまでのサンプルファイルを
配布しよう。
次回は個人別の得点合計、平均点、順位を
求めるコードを書くとしよう。
投稿情報: 午後 09時17分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
(●`ε´●):前回から、だいぶ間があいてしまったな。みんなは
何をやっていたか、たぶん忘れているぞ!!
【´・ω・`】:前回は下のコードをさらにまとめるというところだった。
For %i = 4 TO 26 Step 2
Call 教科別成績(%i)
Next
Sub 教科別成績(%列)
%科目=0
%科目受験者=0
For %i = 8 To 52
%科目 = %科目 + Cells(%i, %列)
If Cells(%i, %列) <> "" Then
%科目受験者 = %科目受験者 + 1
End If
Next
If %科目受験者>0 Then
%科目平均= %科目/%科目受験者
End If
Cells(53,%列)=%科目
Cells(54,%列)=%科目受験者
Cells(55,%列)=%科目平均
End Sub
(●`ε´●):よくみるとForループのなかでやっていることは
サブルーチン教科別成績を呼び出しているだけだな。
【´・ω・`】:うん。だから、結局下のように書いてサブルーチンの部分を
無くしても構わない。
For %列 = 4 TO 26 Step 2
%科目=0
%科目受験者=0
%科目平均=0
For %行 = 8 To 52
%科目 = %科目 + Cells(%行, %列)
If Not IsBlank(Cells(%行, %列)) Then
%科目受験者 = %科目受験者 + 1
End If
Next
If %科目受験者>0 Then
%科目平均= %科目/%科目受験者
End If
Cells(53,%列)=%科目
Cells(54,%列)=%科目受験者
Cells(55,%列)=%科目平均
Next
(●`ε´●):赤い部分はなんだ?
【´・ω・`】:科目ごとに変数%科目、%科目受験者 、%科目平均を
0に初期化するためのコードだ。
(●`ε´●):なんでそんなものをつけるんだ?
【´・ω・`】:サブルーチン教科別成績を呼び出す形式のコードでは
実はあってもなくてもよかった。
(●`ε´●):???
【´・ω・`】:それはサブルーチンを呼びだす度に%科目、%科目受験者 、%科目平均は
自動的に初期化されるからだ。しかし、そうでないときは自動的に
初期化されないから不具合が起こる。
(●`ε´●):どんな?
【´・ω・`】:例えば、ある科目の受験者がゼロの場合、その前の科目の
データがそのまま、表示されてしまう・・・。実際に試して
見て欲しい・・・。
投稿情報: 午後 07時37分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:今回は特定範囲内の最大値・最小値の求め方を
紹介しよう。A1からA10にそれぞれ、45,56,49,68,78,55,
32,62,71,48と10個の数値が入力されているとしよう。
この数値のうち50以上70未満の範囲内で最大値を求める。
・・・・・
=Max(Search("<70 And >=50",A1:A10))
・・・・・となる。
(●`ε´●):もしも50以上70未満の範囲内で最小値を求めるなら・・・
=Min(Search("<70 And >=50",A1:A10))
・・・・・とすればいいな。
投稿情報: 午前 12時36分 カテゴリー: 成績処理 | 個別ページ | コメント (1) | トラックバック (0)
【´・ω・`】:A1からA10にそれぞれ、45,56,49,68,78,55,32,62,71,48と
入力されているとしよう。
まずは肩慣らしだ。数値60点以上の平均を求める式はどうなるかな?
(●`ε´●):=Avg(Search(">=60",A1:A10))
・・・でいいのか?
【´・ω・`】:その通り!!それでは50点以上65点未満の平均を求めるには?
(●`ε´●):お~でたな、複数条件か?
【´・ω・`】:うん。
(●`ε´●):これでどうか?
=Avg(Search(">=50 And <65",A1:A10))
【´・ω・`】:うん、それでいい。
(●`ε´●):あっさりしたもんだな。
【´・ω・`】:それでは50点未満または65点以上の平均を求めるには?
(●`ε´●):=Avg(Search("<50 Or >=65",A1:A10))
・・・だ。
【´・ω・`】:うん。
(●`ε´●):SearchとCount、SearchとSum、SearchとAvg、。。。
なかなか、面白かったよ。三四郎も侮れないな。
投稿情報: 午後 10時58分 カテゴリー: 成績処理 | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:A1からA10にそれぞれ、45,56,49,68,78,55,32,62,71,48と
入力されているとしよう。
まずは肩慣らしだ。数値60点以上の和を求める式はどうなるかな?
(●`ε´●):=Sum(Search(">=60",A1:A10))
・・・でいいのか?
【´・ω・`】:その通り!!それでは50点以上65点未満の和を求めるには?
(●`ε´●):お~でたな、複数条件か?
【´・ω・`】:うん。
(●`ε´●):これでどうか?
=Sum(Search(">=50 And <65",A1:A10))
【´・ω・`】:うん、それでいい。
(●`ε´●):あっさりしたもんだな。
【´・ω・`】:それでは50点未満または65点以上の和を求めるには?
(●`ε´●):=Sum(Search("<50 Or >=65",A1:A10))
・・・だ。
【´・ω・`】:うん。
(●`ε´●):三四郎使いには常識だな。
投稿情報: 午後 09時11分 カテゴリー: 成績処理 | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:A1からA10にそれぞれ、2,3,5,4,2,1,4,2,3,4と
入力されているとしよう。
まずは肩慣らしだ。数値4の個数を求める式はどうなるかな?
(●`ε´●):えーっと・・・
=CountExact(4,A1:A10)
・・・はどうかな?
あれ?0になっちゃった・・・それでは・・・
=CountExact("4",A1:A10)
あ、これもダメだ。0になっちゃった。
【´・ω・`】:CountExactは文字列にしか使えない。この場合はダメだな。
(●`ε´●):では、どうしたらいいんだ?
【´・ω・`】:CountとSearchを組み合わせて・・・
=Count(Search("=4",A1:A10))
...とする。
では4以上の数値の個数を求めるには?
(●`ε´●):=Count(Search(">=4",A1:A10))
・・・でいいのか?
【´・ω・`】:その通り!!それでは2以上4未満の数値の個数を求めるには?
(●`ε´●):いよいよ、複数条件か?
【´・ω・`】:うん。
(●`ε´●):これでどうか?
=Count(Search(">=2 And <4",A1:A10))
【´・ω・`】:うん、それでいい。
(●`ε´●):あっさりしたもんだな。
【´・ω・`】:それでは2未満または4以上の数値の個数を求めるには?
(●`ε´●):=Count(Search("<2 Or >=4",A1:A10))
・・・だ。
【´・ω・`】:うん。
(●`ε´●):簡単だな。
投稿情報: 午後 07時19分 カテゴリー: 成績処理 | 個別ページ | コメント (0) | トラックバック (0)
(●`ε´●):エクセルは2007になって大幅に改良されたぞ!!
【´・ω・`】:例えば?
(●`ε´●):2003まではCountIfやSumIfは条件が一つしか
設定できなかったけど2007はCountIfsやSumIfsを
導入して複数条件を設定できるようになった。
【´・ω・`】:それで?
(●`ε´●):三四郎は2007になっても三四郎9と変わらないから
おいら、肩身が狭いよ。JustSystemよ、なんとかしろよ!!
【´・ω・`】:べべちゃん、それはちがうよ。三四郎はずーっと前から
その程度のことはできるんだよ。だから、今更その程度の
ことで騒ぐことはないんだ!!
(●`ε´●):えっ、ではエクセルより三四郎の方が進んでいたのか?
【´・ω・`】:うん。
(●`ε´●):本当にエクセルユーザに対して胸を張っていいんだな?!
【´・ω・`】:うん。
(●`ε´●):そこまで言ったんだから責任もてよ!!
投稿情報: 午前 09時35分 カテゴリー: 成績処理 | 個別ページ | コメント (0) | トラックバック (0)
以前、悪児さんの掲示板に「三四郎のCountExact関数について」という質問が
ありました(投稿番号2635)。具体的には「エクセルで、「山田」と入力されたセル数を
数える場合、1セル内に「山田、佐藤」とあっても、Countif関数で、
=Countif(A2:A10,"山田*")とすればカウント可能ですが、三四郎の場合はどうすれば
良いのでしょうか。」という質問です。CountExact関数ではワイルドカードが
使えないので作業列を使う方法やデータベース関数を使う方法などが
話題になりました。
データベース関数を使う方法を提示されてたのは
たしか、きっちーさんでしたよね?
・・・でこんなやりかたは如何でしょうか?
=Count(Search("like'山田'",A2:A10))
(^o^)/~~~
投稿情報: 午前 12時07分 カテゴリー: 文字列操作 | 個別ページ | コメント (3) | トラックバック (0)
きっちーさん、こんばんは。コメント有り難うございます。
いや~、ぶっ飛びました(^。^)
A1に反転させたい文字列。
B1に=If(Len(B1)>Len($A$1),"",Mid($A$1,Len(B1)+1,1) & B1)
これは100文字以上でも大丈夫ですね!三四郎の反復回数99回の
制限を見事に克服しています!!
反復回数を指定しての循環参照がForループに相当するとすれば
きっちーさんのはDo ループでしょうか。くまぷーは三四郎の循環参照は
エクセルに比べて柔軟性に欠けると思っていました。でも研究すれば
いろいろと楽しいことができそうです。
ありがとうございました。(^o^)/~~~
投稿情報: 午後 10時36分 カテゴリー: 文字列操作 | 個別ページ | コメント (0) | トラックバック (0)
以前、悪児さんの掲示板に「5や4の数を調べるには」という質問が
ありました(投稿番号2488)。三四郎のCountExact関数では
文字列の個数を求めることはできても数値の個数を求めることはできません。
例えばA1からA10に1,2,3,2,1,3,2,3,1、3とあって
=CountExact(3, A1:A10)としても答えは0になってしまいます。もちろん
=CountExact("3",A1:A10)としてもダメです。
そのときはデータを文字列化するとか、DCountを使うとかいう話になったのですが
=Count(Search("=3",A1:A10))
でいいんですね。
投稿情報: 午後 09時13分 カテゴリー: 文字列操作 | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:酔いが覚めたら悪児さんの式の意味が分かったよ。
Shift+F2なしで「らどぐんき」か・・・。ほんとうはくまぷーも
これがやりたかったんだけど、悪児さんがご自身のブログで
「反復計算では、1度、全部のセルを計算した後、また最初の
セルから2度目の計算をする、というのではないらしい。
このケースでは、どうみても、A3を6回反復して計算し、
その後B1の再計算にかかるらしい。」と仰っている。くまぷーも
悪児さんと同じように考えた。
でも、これが三四郎の仕様であり、エクセルのような動きをさせるのは
不可能だろうと思いこんで、Shift+F2方式にしてしまった・・・。
いや、本当に素晴らしい!!シャッポを脱ぎます!!
ところで不思議なことに悪児さんの式をB1にくまぷーの
式をB4に入力したとすると・・・・くまぷーの式も悪児さんのと
同じ動きをするな・・・そして更に解らないのはA3の式を
削除しても、その影響を受けずにちゃんと動作するところだ!
(●`ε´●):おまえの式はA3を参照しているんだろ?
【´・ω・`】:うん、それが不思議なところだ。
(●`ε´●):わからないふりをしているだけではないのか?
【´・ω・`】:いや、ほんとうにわからないんだ。いや、ほんと。
投稿情報: 午後 07時48分 カテゴリー: 文字列操作 | 個別ページ | コメント (1) | トラックバック (0)
15パズルもいよいよ、最終回です。今回は
完成品をアップします。遊んでみてください。
くまぷー自身、三四郎は初心者なので
「なんだこりゃ?!」と思うようなところが多々あったのでは
ないかと思います。しかし、以前にも書きましたが
Super Play Rite の作品を公開しているサイトは少ないながらも
存在しますが、コードの解説をしているサイトは
(ほとんど)存在しないように思います。ジャストシステム自身が
Super Play Riteの普及を放棄したように思える今、そこのところに
このサイトの存在理由があります。
これからも拙いながら、三四郎マクロを公開していきます。
コメントなど頂けたら、励みになりますのでよろしくお願いいたします。
投稿情報: 午後 12時03分 カテゴリー: 三四郎マクロ初心者奮戦記, 15パズル | 個別ページ | コメント (0) | トラックバック (0)
!!15パズル by くまぷー
!!2007/04/23
!!All Rights Reserved
!!教員のための三四郎活用術
!!http://kumapooh.typepad.jp/
Call Init
MsgBox("パネルをシャッフルします。")
Randomize(ThisTime())
%X=5
%Y=8
for %i = 1 To 3000
%DX = Int(Rand() * 3)-1
%DY = Int(Rand() * 3)-1
If Abs(%DX + %DY) = 1 Then
If Cells(%Y+%DY, %X+%DX) = "" Then
continue for
Else
Cells(%Y, %X) = Cells(%Y+%DY, %X+%DX)
Cells(%Y+%DY, %X+%DX) = ""
%Y = %Y+%DY
%X = %X+%DX
End If
End if
next
MsgBox("新しいゲームを始めます。")
Do While %MyKey <> "{ESC}"
Set %MyRange = Range?
%MyKey=GetKey(2,0)
try
%Cnt =%MyRange.Cells.Count
Exception
Case "ConstraintError"
MsgBox("Quit")
stop
end try
If %Cnt = 1 Then
If Row(%MyRange) > 4 And Row(%MyRange)< 9 And \\
Col(%MyRange)>1 And Col(%MyRange)<6 Then
For %dy = -1 To 1
For %dx = -1 To 1
If Abs(%dy + %dx)=1 Then
If Row(%MyRange)+%dy > 4 And Row(%MyRange)+%dy< 9 And \\
Col(%MyRange)+%dx>1 And Col(%MyRange)+%dx<6 Then
If Cells(Row(%MyRange)+%dy, Col(%MyRange)+%dx)="" Then
Cells(Row(%MyRange)+%dy, Col(%MyRange)+%dx)=\\
Cells(Row(%MyRange), Col(%MyRange))
Cells(Row(%MyRange), Col(%MyRange))=""
End If
End If
End If
Next
Next
If IsGameOver Then
MsgBox("Very Good!!")
Stop
End If
End If
End If
Loop
Function IsGameOver() As Boolean
%i=1
IsGameOver=True
For %y = 5 To 8
For %x = 2 To 5
If %i = 16 Then
%i = ""
End If
If Cells(%y, %x)<> %i Then
IsGameOver=False
End If
%i=%i+1
Next
Next
End Function
Sub Init()
%i=1
For %y = 5 To 8
For %x = 2 To 5
If %i = 16 Then
%i = ""
End If
Cells(%y, %x)=%i
%i=%i+1
Next
Next
End Sub
注 \\は行継続文字
赤字のコードはESCキー押下でゲームを中止するためのもの。
青字のコードはエラー対策のためのもの。
投稿情報: 午前 01時30分 カテゴリー: 三四郎マクロ初心者奮戦記, 15パズル | 個別ページ | コメント (0) | トラックバック (0)
(●`ε´●):おい、くまぷー、悪児さんからコメントを頂いているぞ!!
【´・ω・`】:何と仰っているんだ?
(●`ε´●):下を見てくれ。
>くまぷーさんの解答ですが、B2セルの式を
>=If(A2=0,"",If(Len(B1)<Len(A1),B1 & Mid(A1,Len(A1)-Len(B1),1),B1))
>に替え、反復回数を10回以上に設定すると、どうでしょう・・・(^^)(^^)
【´・ω・`】:ごじらを逆さまに(8)の式についてだな。くまぷーの式が・・・
=If(A2=0,"",If(Len(B1)<Len(A1),B1 & Mid(A1,Len(A1)-A3+1,1),B1))
・・・だから、赤字の部分が違うという訳か。
(●`ε´●):二つの式は同じ効果があるようだな。
【´・ω・`】:うん、まあ、悪児さんのはくまぷーのとほぼ同じだから・・・。
反復回数をユーザに最大の99回にしてもらうのも悪くはないな。
(●`ε´●):で、おまえの式と悪児さんので結果に何か違いがあるのか?
【´・ω・`】:特に無いとおもうけど・・・。酔っぱらっているから違いが
見えないのかもしれない・・・。
投稿情報: 午後 09時48分 カテゴリー: 文字列操作 | 個別ページ | コメント (0) | トラックバック (0)
今回、扱うのはゲームの終了判定の部分です。
ゲームが終了するのは1~15までの数字とブランクパネルが
初期状態に配置され直したときです。
まず、どのタイミングでゲームの終了判定をするかということを
考えなければいけません。プログラマーには、プレーヤーの何回目の
パネル移動でゲームが終了するかをしることはできません。1回目で
あがりになるかもしれないし、100回目かもしれません。
したがって、プレーヤーのパネル操作1回ごとにゲームの終了判定を
しなければなりません。
厳密に言えばゲームの開始時にすでにあがっている状態、
すなわち麻雀で言えば天和ということも、可能性としてはあります。したがって
そこまで考慮するならば、最初のパネルシャッフル時に天和の時には
さらにシャッフルを繰り返すというコードを付け加えた方がいいのですが
天和は滅多にあることではないので、今回はそこまでは致しません。
コードは下のようになります。
Function IsGameOver() As Boolean
%i=1
IsGameOver=True
For %y = 5 To 8
For %x = 2 To 5
If %i = 16 Then
%i = ""
End If
If Cells(%y, %x)<> %i Then
IsGameOver=False
End If
%i=%i+1
Next
Next
End Function
いよいよ、15パズルの最終回がちかくなってきました。
次回は全コードを掲示します。
投稿情報: 午後 08時11分 カテゴリー: 三四郎マクロ初心者奮戦記, 15パズル | 個別ページ | コメント (1) | トラックバック (0)
★ごじらを逆さまに(10)から続いています・・・。
(●`ε´●):うーん、非表示になっている6行目を再表示させて・・・。B6を
見ると・・・。
=Fold(Repeat(" ",100) & $B5,1,Len(Repeat(" ",100) & $B5)-10*(Col(A1)-1)) & Fold(Repeat(" ",100) & $B5,1,Len(Repeat(" ",100) & $B5)-1-10*(Col(A1)-1)) & Fold(Repeat(" ",100) & $B5,1,Len(Repeat(" ",100) & $B5)-2-10*(Col(A1)-1)) & Fold(Repeat(" ",100) & $B5,1,Len(Repeat(" ",100) & $B5)-3-10*(Col(A1)-1)) & Fold(Repeat(" ",100) & $B5,1,Len(Repeat(" ",100) & $B5)-4-10*(Col(A1)-1)) & Fold(Repeat(" ",100) & $B5,1,Len(Repeat(" ",100) & $B5)-5-10*(Col(A1)-1)) & Fold(Repeat(" ",100) & $B5,1,Len(Repeat(" ",100) & $B5)-6-10*(Col(A1)-1)) & Fold(Repeat(" ",100) & $B5,1,Len(Repeat(" ",100) & $B5)-7-10*(Col(A1)-1)) & Fold(Repeat(" ",100) & $B5,1,Len(Repeat(" ",100) & $B5)-8-10*(Col(A1)-1)) & Fold(Repeat(" ",100) & $B5,1,Len(Repeat(" ",100) & $B5)-9-10*(Col(A1)-1)) & C6
・・・あ、最後にC6がくっついている・・・。
【´・ω・`】:うん、こうすることによって10個のFold()ブロックの10文字分に加えて
C6の、つまりひとつ右隣のセルの文字を併せて表示するようにしているんだ。
(●`ε´●):あ、なるほど。この式をコピペするとドミノ倒しのように右隣の文字が
付け加えられていくわけか!!
あ、でもくまぷー、C6には何も表示されていないぞ。1文字もないじゃ
ないか!!文字の色を白にしているようでもないし・・・。
【´・ω・`】:いや、C6をコピーして他のセルに「形式を選択して貼り付け」で
「値」で複写してみるといい・・・・。
(●`ε´●):あ、な~るほど。わかったぜい!!
悪児さん、どもでした。(^o^)/~~~
投稿情報: 午前 10時20分 カテゴリー: 文字列操作 | 個別ページ | コメント (0) | トラックバック (0)
それでは具体的なコードを示そう。以下の通りだ。
Jump(1,4,2)
For %Y = 1 To 12
For %X = 1 To 12
Randomize(ThisTime())
%num = Int(Rand() * 26) + 97
Insert( Char(%num))
if %X < 12 Then
RightCell()
End If
Next
DownCell
LeftCell(11)
Next
サンプルファイルのマクロ「Main」を実行すると12×12のマスに
ランダムにアルファベットが表示される。
尚、繰り返して「Main」を実行するときはあらかじめ12×12の
マスに表示されているアルファベットを削除しておく。
サンプルファイルを用意したので
下からDLして欲しい。
投稿情報: 午前 02時53分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
つぎにセルを指定する命令であるが、三四郎のCellsや
ワードVBAのCellに相当するものは無いようである。
使えそうなのは以下の3つの命令である。
LeftCell(回数):カーソルを指定された回数だけ左に移動させる。
RightCell(回数):カーソルを指定された回数だけ右に移動させる。
DownCell(回数):カーソルを指定された回数だけ下に移動させる。
文字コードを文字に変換する命令はすぐにわかった。
Char(文字コード)だった。
文字コードはA~Zが65~90、a~zが97~122だ。Char(65)はAのことだ。
投稿情報: 午後 08時45分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
さて今まで調べたことを基に12×12のマスにランダムに アルファベットを表示させてみよう。未知の事項はは乱数を 表示させる命令、12×12のマス、つまりセルを指定する命令 それに文字コードを文字列に変換する命令か・・・。 それではいつもの通り、ヘルプを調べてみよう。 せっかく買い求めた「一太郎マクロ入門」にはあまりお世話に なることもないようだ。ヘルプの文例に下のように書いてある。 |
Randomize(ThisTime()) !! 乱数系列を再設定する このあたりはVBAと同じだ。Rand()だけだと同じ乱数を 呼び出してしまうのでRand()を使う前にRandomize()を 使って乱数のタネをつくるのであろう。その際、ThisTime()で 現在の時刻を引数にする・・・このあたりはお約束だ。 ローカルであることを意味する。もしもvalの前に$をつけると valのスコープがグローバルであることを意味するということになる。 |
投稿情報: 午後 12時42分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
(●`ε´●):悪児さんのでもうひとつわからないのは・・・
=Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-1) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-2) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-3) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-4) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-5) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-6) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-7) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-8) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-9)
・・・の赤字の部分の働きだ。B1は「きんぐぎどら」だよな?!悪児さんは
なんのために「きんぐぎどら」のまえにスペースを10個もくっつけたんだろうか?
【´・ω・`】:そういうときはRepeat(" ",10) &を消してしまえばいい。
そうすればRepeat(" ",10) &の役割が見えてくる。
(●`ε´●):下のようにしてしまえというわけか・・・
=Fold(B1,1,Len(B1)) & Fold(B1,1,Len(B1)-1) & Fold(B1,1,Len(B1)-2) & Fold(B1,1,Len(B1)-3) & Fold(B1,1,Len(B1)-4) & Fold(B1,1,Len(B1)-5) & Fold(B1,1,Len(B1)-6) & Fold(B1,1,Len(B1)-7) & Fold(B1,1,Len(B1)-8) & Fold(B1,1,Len(B1)-9)
・・・あ、あれ?!「きんぐぎどら」が!引数不正!になっちゃったぞ?!
どうやらRepeat(" ",10) &はなんかのエラー対策のようだな。
【´・ω・`】:「きんぐぎどら」のかわりに「1234567890」といれてごらん。
(●`ε´●):あれ?こんどはエラーにならずに「0987654321」と表示されたぞ?!
そうか、Repeat(" ",10) &は10文字未満の時にエラーにならないように
するためのものか!!
【´・ω・`】:うん。
(●`ε´●):じゃあ、悪児さん方式でやると100文字を逆さまにするのにFold()のブロックが
100個いるというわけか?
【´・ω・`】:うん。基本的にはね。
(●`ε´●):しかし、B5の「'くまぷー先生すてき♥ですよ。きゃー!
なんちゃって◇さらに続く」は31文字だからFold()ブロックが
31個いるはずだが・・・?
【´・ω・`】:べべちゃん、よく見てごらん。
(続く)
投稿情報: 午前 12時01分 カテゴリー: 文字列操作 | 個別ページ | コメント (1) | トラックバック (0)
(●`ε´●):くまぷー、悪児さんのファイルを見たんだがちょっと
意味がわからないところがあるんだ。
【´・ω・`】:悪児さんは正攻法だと言っていたな。べべちゃん、で、
どんな関数を使っていたんだ?
(●`ε´●):こんなやつだ。「きんぐぎどら」がB1で・・・
B2にこんな式があったんだ・・・
=Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-1) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-2) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-3) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-4) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-5) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-6) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-7) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-8) & Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1)-9)
【´・ω・`】:で、なにがわからないんだい?
(●`ε´●):まず、式が長いんで、どこから解読したらいいのかわからない・・・。
【´・ω・`】:よく見てみると・・・
Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1))
・・・をたくさん、くっつけたようだな。
(●`ε´●):うん、数えてみると10個あるな。
【´・ω・`】:べべちゃん、そういうときは・・・
ひとつを残して後はデリートしてしまえばいい。・・・例えば
=Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1))
・・・だけを残して後は消してしまう。そうすると式の動きが
見えてくる。式が長くて理解しにくいなら
長いままで扱うのは賢くない。短くしてしまえばいい。
(●`ε´●):なるほど。・・・
=Fold(Repeat(" ",10) & B1,1,Len(Repeat(" ",10) & B1))
・・・はどうやら、「きんぐぎどら」の「ら」を表示している部分らしいな。
こうやってみると、ひとつのFold()の部分がひらがな1文字にあたる
ようだな。
【´・ω・`】:うん。
(●`ε´●):わかってきたよ。くまぷー、でも、まだわからないところがあるんだ。
【´・ω・`】:どこだい。
(●`ε´●):それは・・・。
(続く)
投稿情報: 午後 07時38分 カテゴリー: 文字列操作 | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:問題はこうだった。
A1に入力された「ごじら」をB1に「らじご」と表示させる。
ただし、下のような決うちは不可。
=Right(A1,1) & Mid(A1,2,1) & Left(A1,1)
A1に入る文字数は不定。A1に「きんぐぎどら」とあれば
B1に「らどぎぐんき」と表示させる。
(●`ε´●):くまぷー、芸が無いと言われるようなことはしないと
「ごじらを逆さまに(7)」で大口をたたいていたな。
それでは、おまえの回答を聞かせてもらおうか?!
【´・ω・`】:それでは・・・。
B1に・・・
=If(A2=0,"",If(Len(B1)<Len(A1),B1 & Mid(A1,Len(A1)-A3+1,1),B1))
A3に・・・=If(A2=0,0,A3+1)
・・・と入力して欲しい。
(●`ε´●):それで?
【´・ω・`】:A2に・・・1と入力して・・・
Shiftを押しながら、F2を押すとそのたびに「ら」「らじ」「らじご」と
1文字ずつ逆読みで表示されていく・・・。
(●`ε´●):こ、これは?!
【´・ω・`】:A2に0を入力するとリセットされる。試して欲しい。
悪児さんはどんな手を使ったのかな?
投稿情報: 午後 09時06分 カテゴリー: 文字列操作 | 個別ページ | コメント (6) | トラックバック (0)
他のシートに書き込むにはどうしたらよいのか?
これもいつものように記録マクロで調べてみることにした。
記録マクロを使ってコードのサンプルを得る・・・。これが
記録マクロの一番役に立つところだ。特に一太郎マクロや
三四郎マクロのように情報が得にくいものでは欠かせない。
くまぷーが買い求めた「一太郎マクロ入門」も悪い本では
ないのだろうが、本当のところはあまり参考にしてはいない。
記録マクロで作ったコードをおおいに参考にしている・・・。
さて記録マクロの言うところでは・・・
カレントシート切替(.シート名="Sheet2") |
と記述すればSheet2をアクティベートできることがわかった。 しかしこのカレントシート切替()という命令はヘルプに載っていなかった。 ひょっとしたら英語名のものがあるのではないかと調べてみたら ChangeCurrentSheet(<シート名>)という名前で記載されていた。 シート名は文字列で指定することもできるし、左のシートから 1,2,3・・・と番号で指定することもできるということである。 補足であるがJumpStart()で文書の頭にJumpEnd()で文書末に カーソルを移動させることができる。尚、冗談のようだが JumpStart()の代わりに「文書頭」、JumpEnd()の代わりに 「文書末」と記述しても同じ効果がある。 一太郎マクロはなかなか味が・・・・ある。 |
投稿情報: 午後 07時22分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:今回は前回紹介した下のコードをさらにまとめてみよう。
Call 教科別成績(4) !!国語
Call 教科別成績(6) !!現社
Call 教科別成績(8) !!数学
Call 教科別成績(10) !!化学
Call 教科別成績(12) !!体育
Call 教科別成績(14) !!保健
Call 教科別成績(16) !!音楽
Call 教科別成績(18) !!美術
Call 教科別成績(20) !!書道
Call 教科別成績(22) !!英語
Call 教科別成績(24) !!オーラル
Call 教科別成績(26) !!家庭
Sub 教科別成績(%列)
%科目=0
%科目受験者=0
For %i = 8 To 52
%科目 = %科目 + Cells(%i, %列)
If Cells(%i, %列) <> "" Then
%科目受験者 = %科目受験者 + 1
End If
Next
If %科目受験者>0 Then
%科目平均= %科目/%科目受験者
End If
Cells(53,%列)=%科目
Cells(54,%列)=%科目受験者
Cells(55,%列)=%科目平均
End Sub
【´・ω・`】:数字に赤い色をつけた。そこに着目して欲しい。
何か気がつかないか?
(●`ε´●):初項4,公差2の等差数列になっているな。
【´・ω・`】:だから上のコードの上半分(メインルーチン)は下のように
まとめられる・・・。
For %i = 4 TO 26 Step 2
Call 教科別成績(%i)
Next
(●`ε´●):3行マクロか・・・。ところでStepってのは何だ?
【´・ω・`】:変数%iの増加分だ。Stepを省略するとForループでは
ループ1回につき%iが1増加する。Step 2 とすると
2ずつ増加するんだ。
(●`ε´●):そうか。こう書けば4のつぎに%iは5を飛ばして
6になるんだな?
【´・ω・`】:そう。
(●`ε´●):かなり、短くなったな。
【´・ω・`】:うん。でもここまでやったら、もう一押ししたくなる・・・。
For %i = 4 TO 26 Step 2
Call 教科別成績(%i)
Next
Sub 教科別成績(%列)
%科目=0
%科目受験者=0
For %i = 8 To 52
%科目 = %科目 + Cells(%i, %列)
If Cells(%i, %列) <> "" Then
%科目受験者 = %科目受験者 + 1
End If
Next
If %科目受験者>0 Then
%科目平均= %科目/%科目受験者
End If
Cells(53,%列)=%科目
Cells(54,%列)=%科目受験者
Cells(55,%列)=%科目平均
End Sub
(●`ε´●):まだやるのか?
投稿情報: 午前 05時55分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
さて、もうひとつ気になることがある。一太郎はたしかVer.10から
複数シートをサポートするようになっている。
先程のJump()には別シートを指定するパラメータが
無いので別シートに書き込むことができない。
他のシートに書き込むにはどうしたらよいのか?
くまぷーの買い求めた「一太郎マクロ入門」はVer.5、しかも
DOS版用なので役には立たない。
この本も発行された1994年当時ならば良書だったの
だろうが2007年の今となっては・・・である。さて別シートに文字を
書き込むにはいったい、どうしたらいいのだろう?
投稿情報: 午後 10時03分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
Insert()の前にJump()を使ってあらかじめカーソルを移動させて
おけば任意の場所に文字を書き込めることがわかった。
しかし、ここで留意しなければならないことは他のユーザに
1ページの行数、1行の文字数を勝手に変更されてしまうと
マクロの実行結果が予期せぬものになってしまうということだ。
これは表計算ソフトで言えば行・列の思わぬ削除・挿入に当たるものと
考えればいいだろう。表計算ソフトであれば「保護」機能を使ってユーザの
思わぬ変更を禁止するのだが、一太郎にそのような「保護」機能が
あるのだろうか?残念ながら一太郎初心者のくまぷーには
そのような機能を見つけることはできなかった。
投稿情報: 午後 08時50分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
また、記録マクロを使って自動生成されるコードを調べてみよう。 すると・・・ |
ジャンプ(.ページ番号=1,.行番号=2,.文字位置=11) |
というコードが記録された。マクロバイザー(以下ヘルプ)を見てみると エクセルや三四郎などの表計算ソフトであればシート、行、列の 3つのパラメータを指定して文字を書き込むが ワープロソフト「一太郎」の場合はページ番号、行番号、文字位置を 指定する。ページ番号がシート、行番号が行、文字位置が列に 対応すると考えればわかりやすい。 |
Jump(1,2,7) |
1ページの2行目の7文字目から「世界よ こんにちは!!」と 表示されることになる。 |
投稿情報: 午後 12時20分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:さて、べべちゃんの作った各科目の得点合計・受験者数・平均点の
コードをもう一度じっくりと見て欲しい。たしか、成績一覧表を作る(6)だったな。
べべちゃん、あのコードはどうやって作ったんだい?
(●`ε´●):ああ、科目名と列が異なるだけだから国語のために作った下のコードを
コピペしてつくったんだ。変数の名前を変えて、列を表す数字を変えてな。
俺って頭いいだろ!!
※べべちゃんは国語のコードの赤字の部分を変えて数学のコードを
作りました。
**********************************************************************
%国語=0
%国語受験者=0
For %i = 8 To 52
%国語 = %国語 + Cells(%i, 4)
Next
For %i = 8 To 52
If Not IsBlank(Cells(%i, 4)) Then
%国語受験者 = %国語受験者 + 1
End If
Next
If %国語受験者>0 Then
%国語平均= %国語/%国語受験者
End If
Cells(53,4)=%国語
Cells(54,4)=%国語受験者
Cells(55,4)=%国語平均
**********************************************************************
%現社=0
%現社受験者=0
For %i = 8 To 52
%現社 = %現社 + Cells(%i, 6)
Next
For %i = 8 To 52
If Not IsBlank(Cells(%i, 6)) Then
%現社受験者 = %現社受験者 + 1
End If
Next
If %現社受験者>0 Then
%現社平均= %現社/%現社受験者
End If
Cells(53,6)=%現社
Cells(54,6)=%現社受験者
Cells(55,6)=%現社平均
【´・ω・`】:同じような処理を繰り返すときはその処理を
1カ所(さぶルーチン)にまとめ、そのルーチンを
呼び出して使うのが定石だ。例えば上の処理なら
・・・・
Sub 教科別成績(%列)
%科目=0
%科目受験者=0
For %i = 8 To 52
%科目 = %科目 + Cells(%i, %列)
If Not IsBlank(Cells(%i, %列)) Then
%科目受験者 = %科目受験者 + 1
End If
Next
If %科目受験者>0 Then
%科目平均= %科目/%科目受験者
End If
Cells(53,%列)=%科目
Cells(54,%列)=%科目受験者
Cells(55,%列)=%科目平均
End Sub
・・・・こうしておけば変数%列を変えれば同じコードで全ての
科目に対応させることが出来る。
似たようなコードをたくさんいろんなところに書き散らかしておくと
コードの保守が難しくなる。どこかを変えようと思ったら何十カ所も
書き換えなくてはならない。バグを生み出す元凶だな。
このサブルーチンをメインルーチンの下に書いておけば
このようなコードでべべちゃんがやったのと同じことができる。
**********************************************************************
Call 教科別成績(4) !!国語
Call 教科別成績(6) !!現社
Call 教科別成績(8) !!数学
Call 教科別成績(10) !!化学
Call 教科別成績(12) !!体育
Call 教科別成績(14) !!保健
Call 教科別成績(16) !!音楽
Call 教科別成績(18) !!美術
Call 教科別成績(20) !!書道
Call 教科別成績(22) !!英語
Call 教科別成績(24) !!オーラル
Call 教科別成績(26) !!家庭
Sub 教科別成績(%列)
%科目=0
%科目受験者=0
For %i = 8 To 52
%科目 = %科目 + Cells(%i, %列)
If Not IsBlank(Cells(%i, %列)) Then
%科目受験者 = %科目受験者 + 1
End If
Next
If %科目受験者>0 Then
%科目平均= %科目/%科目受験者
End If
Cells(53,%列)=%科目
Cells(54,%列)=%科目受験者
Cells(55,%列)=%科目平均
End Sub
(●`ε´●):ずいぶん、コードが短くなってすっきりしたな。
【´・ω・`】:ふふふ、まだまだ。次回は今紹介したコードを更にまとめてみよう。
(●`ε´●):え、まだまとめられるのか?
【´・ω・`】:うん。では次回に・・・
投稿情報: 午前 01時15分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
前回のInsert()で文字を書き込むことはできる。
しかし、Insert()は現在のカーソルの位置に文字を書き込むので
カーソルを移動する方法がわからなければ任意の位置に
文字を書き込むことはできない。
カーソルを移動するにはどうしたらよいか?
カーソルの移動方法を極めることが一太郎マクロを
極める鍵になると思われる。
投稿情報: 午後 10時24分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
(●`ε´●):成績一覧表を作る(8)で下のコードにバグがあったと騒いでいたな?
%受験者数=0
For %i = 8 To 52
If Cells(%i, 4) <> "" Then
%受験者数 = %受験者数 + 1
End If
Next
【´・ω・`】:うん、ちょっと不注意だった。
(●`ε´●):おまえが不注意なのは今に始まったことでないので別に驚きは
しないが、俺にはどういう不具合があるのか今ひとつわからんので
ちょっと解説してくれないか?
【´・ω・`】:OK。上のコードは得点入力欄(D8からD52)に入力された得点の数が
いくつあるか、数えているんだ。
(●`ε´●):受験すれば普通、100点満点なら0点から100点までの何らかの
点が入力されるはずだから、得点の数イコール受験者の数という
発想だな。
【´・ω・`】:そう。それでうまくいくと思っていた。ところが三四郎は0と""の
区別がつかないんだ。0点を三四郎は""だと判断してしまうんだ。
(●`ε´●):すると・・・例えば40人受験したとして、その中に0点を取った者が
受験者数が39人になってしまうというわけか?
【´・ω・`】:そうなんだ。
(●`ε´●):それじゃあ、実際より平均点も高くなってしまうな。
【´・ω・`】:その通りなんだよ。で、それを回避したのが下のコードだ。
%受験者数=0
For %i = 8 To 52
If Not IsBlank(Cells(%i, 4)) Then
%受験者数 = %受験者数 + 1
End If
Next
受験者数を求めるコードは何通りか、考えられるが
これはそのうちの一つだ。
投稿情報: 午後 06時30分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:前回の続きだ。前回はプレイヤーがどのセルを選んだかを
Set %MyRange = Range?
で取得した。そして Row(%MyRange)で行番号、Col(%MyRange)で
列番号を取得できることも話した。今回の説明は下のコードについてだ。
If Row(%MyRange) > 4 And Row(%MyRange)< 9 And \\
Col(%MyRange)>1 And Col(%MyRange)<6 Then
(いろいろな処理)
End If
(●`ε´●):なんだこれは?
【´・ω・`】:このコードはプレイヤーが4×4の盤面内のセルを選択しているかどうかを
判定するためのものだ。
(●`ε´●):なるほど盤面はセルB5からE8までの16マスだったな。
【´・ω・`】:そう。プレイヤーが選択したセルの行番号は5から8までの
整数、列番号は2から5までの整数でなければならない。
そしてもしも盤面内のセルを選択していたならさらに次の
コードを実行する。
For %dy = -1 To 1
For %dx = -1 To 1
If Abs(%dy + %dx)=1 Then
(プレーヤーが選んだ数字パネルと
ブランクパネルを交換するコード)
End If
Next
Next
(●`ε´●):上のコードは(いろいろな処理)のところに書けばいいんだな?
【´・ω・`】:そう。ちょっと複雑になっているが頑張ってついてきて欲しい。
まず大局的な考えを言っておこう。方針はプレイヤーの選んだセルの
上下左右4カ所のどこかにブランクパネルがないかを検査し、もしあれば
それとプレイヤーの選んだセルを交換する・・・だ。ただし、プレイヤーが
B列、E列や5行目、8行目を選んだ場合にマスの外側のブランクセルを
ブランクパネルと誤認しないようにしておかなければならない。
(●`ε´●):その方法はいろいろあるらしいな?
【´・ω・`】:うん。盤面の外側のセルには何か目印となるような記号を入力しておくような
てもあるがこんかいは、それはやっていない。
さて、それではコードの説明だ。二つのループで%dy、%dxはそれぞれ
-1,0,1になる。
%dy=-1は上、%dy=1は下、%dx=-1は左、%dx=1は右方向を示している。
Abs()は絶対値になるからAbs(%dy + %dx)=1 ならば上下左右の
いずれかになる。
(●`ε´●):なるほど・・・でそのときには内側の(プレーヤーが選んだ数字パネルと
ブランクパネルを交換するコード) を実行するというわけだな。
【´・ω・`】:うん。
(●`ε´●):具体的には?
【´・ω・`】:こんなかんじかな。
If Row(%MyRange)+%dy > 4 And Row(%MyRange)+%dy< 9 And \\
Col(%MyRange)+%dx>1 And Col(%MyRange)+%dx<6 Then
If Cells(Row(%MyRange)+%dy, Col(%MyRange)+%dx)="" Then
Cells(Row(%MyRange)+%dy, Col(%MyRange)+%dx)=\\
Cells(Row(%MyRange), Col(%MyRange))
Cells(Row(%MyRange), Col(%MyRange))=""
End If
End If
・・・赤いコードはプレイヤーがB列、E列や5行目、8行目を選んだ場合に
マスの外側のブランクセルとプレイヤーが選んだ数字パネルを交換しない
ためのものだ。
(●`ε´●):では内側のコードがプレイヤーが選んだ数字パネルとブランクパネルを
交換するためのものだな。
【´・ω・`】:そう。\\記号は行継続文字だ。SuperPlayRiteは本来は1行々々、命令を
書かなければならない。しかし、あまり長くなると見づらいので\\記号を
使っているが、その部分は本来、1行だということだ。
(●`ε´●):わかった。で、今日やった部分をまとめるとこうなるということだな。
If Row(%MyRange) > 4 And Row(%MyRange)< 9 And \\
Col(%MyRange)>1 And Col(%MyRange)<6 Then
For %dy = -1 To 1
For %dx = -1 To 1
If Abs(%dy + %dx)=1 Then
If Row(%MyRange)+%dy > 4 And Row(%MyRange)+%dy< 9 And \\
Col(%MyRange)+%dx>1 And Col(%MyRange)+%dx<6 Then
If Cells(Row(%MyRange)+%dy, Col(%MyRange)+%dx)="" Then
Cells(Row(%MyRange)+%dy, Col(%MyRange)+%dx)=\\
Cells(Row(%MyRange), Col(%MyRange))
Cells(Row(%MyRange), Col(%MyRange))=""
End If
End If
End If
Next
Next
End If
【´・ω・`】:次回はゲームの終了判定だ。
投稿情報: 午前 05時42分 カテゴリー: 三四郎マクロ初心者奮戦記, 15パズル | 個別ページ | コメント (0) | トラックバック (0)
今回は【´・ω・`】と(●`ε´●)の二人のキャラはちょっとお休みです。
くまぷーの無知より、バグ入りコードを公開してしまいました。
バグはどこに潜んでいたかというと受験者数を求めるコードの
ところです。
くまぷーは受験者数を求めるのに以下の考えを用いました。
(1)受験していれば何かしらの点数がつく。
(2)ならば、その生徒の得点欄には何かしらの
点数が入力される。
(3)従って受験した生徒の得点欄は空欄ではない。
(4)従って空欄でないセルの数を数えれば受験者数が
求められる。
・・・よって以下のコードを書きました。(得点欄がD8:D52の場合)
%受験者数=0
For %i = 8 To 52
If Cells(%i, 4) <> "" Then
%受験者数 = %受験者数 + 1
End If
Next
_| ̄|○ うぐぅ・・・・
ところがこれではダメなんです。三四郎は0と空欄の区別がつかないんですね・・・。
例えばA1に1、A2に2、A3に3、A4に4、A5に0として以下のコードを
実行してみると・・・4になります。
%cnt = 0
For %i = 1 To 5
If Cells(%i, 1) <> "" Then
%cnt = %cnt + 1
End If
Next
MsgBox (%cnt)
・・・0と入力されていても三四郎は""だと思ってしまうんです・・・。
エクセルならば・・・5です。
Sub Test()
cnt = 0
For i = 1 To 5
If Cells(i, 1) <> "" Then
cnt = cnt + 1
End If
Next
MsgBox cnt
End Sub
エクセルならこれでよかったんですが・・・。
ゲッ☆(゜ュ)с=(`´メ おい、三四郎を甘く見るなよ!!
三四郎ならばこうしなければいけないんですね・・・。
%cnt = 0
For %i = 1 To 5
If Not IsBlank(Cells(%i, 1)) Then
%cnt = %cnt + 1
End If
Next
MsgBox (%cnt)
勉強になりましたぜい(^。^)
投稿情報: 午後 09時10分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (5) | トラックバック (0)
【´・ω・`】:べべちゃん、成績一覧表を作る(5)を見たよ。
あれでもきちんと動作するけど一部手直しをしておこうか。
確かべべちゃんのコードはこんなかんじだったかな・・・。
!!国語
%国語=0
%国語受験者=0
For %i = 8 To 52
%国語 = %国語 + Cells(%i, 4)
Next
For %i = 8 To 52
If Cells(%i, 4) <> "" Then
%国語受験者 = %国語受験者 + 1
End If
Next
If %国語受験者>0 Then
%国語平均= %国語/%国語受験者
End If
Cells(53,4)=%国語
Cells(54,4)=%国語受験者
Cells(55,4)=%国語平均
・・・よく見ると何か気がつかないかい?
(●`ε´●):ループの外枠(赤文字部分)が同じだな。
【´・ω・`】:うん、だったらループの部分をひとつにまとめて
しまったほうが効率がいいだろう。下のような
かんじにすればいいよ。
!!国語
%国語=0
%国語受験者=0
For %i = 8 To 52
%国語 = %国語 + Cells(%i, 4)
If Cells(%i, 4) <> "" Then
%国語受験者 = %国語受験者 + 1
End If
Next
If %国語受験者>0 Then
%国語平均= %国語/%国語受験者
End If
Cells(53,4)=%国語
Cells(54,4)=%国語受験者
Cells(55,4)=%国語平均
(●`ε´●):なるほど。
(続く)
投稿情報: 午前 01時00分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
ヘルプによれば |
挿入(.文字列="Hello World!!") |
は |
Insert("Hello World!!") |
と書いても同じ動作をするはず。実験したら予測通りだった。 一太郎はワープロなのだから文字列を書き込むのが1番大切!! これができれば一太郎マクロを半分征服したと言っても 言い過ぎではなかろう・・・(^。^) |
投稿情報: 午後 10時30分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
さて、それではどこから始めようか? 一番大事なのはやはり文字の表示だろうか? たいていのプログラミングの入門書では「Hello World!!」 と画面に表示させるところから始まるのがお決まりのようだし・・・。 それでは一太郎には記録マクロの機能があるのでそれを使ってみよう。 |
挿入(.文字列="Hello World!!") |
というコードが記録された。 マクロバイザー(以下ヘルプ)を見てみると 日本語と英語の命令があるところが一太郎らしくて面白いところだ。 |
投稿情報: 午後 09時21分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
マクロを使えば決まり切った操作を何度も繰り返さずにすむ。
だから、マクロ機能を備えたアプリケーションソフトを
使い始めるとマクロを覚えたくなってくる。しかし、表計算ソフトに
比べるとワープロマクロを覚えようと思う人の数は少ないようだ。
特に教員の世界ではワープロのマクロの使い手は限りなく
ゼロに近いように思える。
(●`ε´●):だって校務で作る文書なんてマクロよりも
テンプレートを使って作るものの方が多いし・・・。
【´・ω・`】:マクロはパズルみたいで面白いんだけどな・・・。
このコーナーでも回が進んでいくと漢字書取問題
作成マクロなんてのを作るから・・・。
(●`ε´●):ところで一太郎マクロってどうなんだ?
【´・ω・`】:一昔前のクセのあるマニュアル車ってカンジかな。
(●`ε´●):???
【´・ω・`】:不便なところを「味がある」って思える人には
面白いかもしれないが、そうでない人には
単に古くさいだけと感じられるかもしれない。
(●`ε´●):例えば?
【´・ω・`】:やってみるとメニューに載っているコマンドが
マクロ対応していなくて、工夫しなければ
うまくできないなんてところがけっこうある。
でも面白いと感じられる人にはそれがかえって面白い。
今のオートマチック車は免許取り立ての若葉マークでも
快適にしかも速く走らせることができる。でも走らせて
楽しいか、わくわくさせてくれるか、というとどうだろう?
(●`ε´●):特大痔有恒みたいなことを言ってるな?
俺は誰でも簡単に乗れる今時のクルマの方がいいが・・・。
おまえはいまだに平成元年式のGTRに乗っているような
男だしな・・・。
投稿情報: 午後 06時30分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
(●`ε´●):今回もくまぷーは留守だ。あいつのことだから
またどっかでさぼっているに違いない。このブログも
「くまぷーの三四郎道場」から「べべちゃんの三四郎道場」に
改めた方がいいな。
さて前回、国語の得点合計、受験者数、平均を求めたのだから
今回は残りの科目もやってしまおう。簡単なもんだ。コードは
下の通りだ!!(べべちゃんは得意満面だった・・・。)
!!国語
%国語=0
%国語受験者=0
For %i = 8 To 52
%国語 = %国語 + Cells(%i, 4)
Next
For %i = 8 To 52
If Cells(%i, 4) <> "" Then
%国語受験者 = %国語受験者 + 1
End If
Next
If %国語受験者>0 Then
%国語平均= %国語/%国語受験者
End If
Cells(53,4)=%国語
Cells(54,4)=%国語受験者
Cells(55,4)=%国語平均
!!現社
%現社=0
%現社受験者=0
For %i = 8 To 52
%現社 = %現社 + Cells(%i, 6)
Next
For %i = 8 To 52
If Cells(%i, 6) <> "" Then
%現社受験者 = %現社受験者 + 1
End If
Next
If %現社受験者>0 Then
%現社平均= %現社/%現社受験者
End If
Cells(53,6)=%現社
Cells(54,6)=%現社受験者
Cells(55,6)=%現社平均
!!数学
%数学=0
%数学受験者=0
For %i = 8 To 52
%数学 = %数学 + Cells(%i, 8)
Next
For %i = 8 To 52
If Cells(%i, 8) <> "" Then
%数学受験者 = %数学受験者 + 1
End If
Next
If %数学受験者>0 Then
%数学平均= %数学/%数学受験者
End If
Cells(53,8)=%数学
Cells(54,8)=%数学受験者
Cells(55,8)=%数学平均
!!化学
%化学=0
%化学受験者=0
For %i = 8 To 52
%化学 = %化学 + Cells(%i, 10)
Next
For %i = 8 To 52
If Cells(%i, 10) <> "" Then
%化学受験者 = %化学受験者 + 1
End If
Next
If %化学受験者>0 Then
%化学平均= %化学/%化学受験者
End If
Cells(53,10)=%化学
Cells(54,10)=%化学受験者
Cells(55,10)=%化学平均
!!体育
%体育=0
%体育受験者=0
For %i = 8 To 52
%体育 = %体育 + Cells(%i, 12)
Next
For %i = 8 To 52
If Cells(%i, 12) <> "" Then
%体育受験者 = %体育受験者 + 1
End If
Next
If %体育受験者>0 Then
%体育平均= %体育/%体育受験者
End If
Cells(53,12)=%体育
Cells(54,12)=%体育受験者
Cells(55,12)=%体育平均
!!保健
%保健=0
%保健受験者=0
For %i = 8 To 52
%保健 = %保健 + Cells(%i, 14)
Next
For %i = 8 To 52
If Cells(%i, 14) <> "" Then
%保健受験者 = %保健受験者 + 1
End If
Next
If %保健受験者>0 Then
%保健平均= %保健/%保健受験者
End If
Cells(53,14)=%保健
Cells(54,14)=%保健受験者
Cells(55,14)=%保健平均
!!音楽
%音楽=0
%音楽受験者=0
For %i = 8 To 52
%音楽 = %音楽 + Cells(%i, 16)
Next
For %i = 8 To 52
If Cells(%i, 16) <> "" Then
%音楽受験者 = %音楽受験者 + 1
End If
Next
If %音楽受験者>0 Then
%音楽平均= %音楽/%音楽受験者
End If
Cells(53,16)=%音楽
Cells(54,16)=%音楽受験者
Cells(55,16)=%音楽平均
!!美術
%美術=0
%美術受験者=0
For %i = 8 To 52
%美術 = %美術 + Cells(%i, 18)
Next
For %i = 8 To 52
If Cells(%i, 18) <> "" Then
%美術受験者 = %美術受験者 + 1
End If
Next
If %美術受験者>0 Then
%美術平均= %美術/%美術受験者
End If
Cells(53,18)=%美術
Cells(54,18)=%美術受験者
Cells(55,18)=%美術平均
!!書道
%書道=0
%書道受験者=0
For %i = 8 To 52
%書道 = %書道 + Cells(%i, 20)
Next
For %i = 8 To 52
If Cells(%i, 20) <> "" Then
%書道受験者 = %書道受験者 + 1
End If
Next
If %書道受験者>0 Then
%書道平均= %書道/%書道受験者
End If
Cells(53,20)=%書道
Cells(54,20)=%書道受験者
Cells(55,20)=%書道平均
!!英語
%英語=0
%英語受験者=0
For %i = 8 To 52
%英語 = %英語 + Cells(%i, 22)
Next
For %i = 8 To 52
If Cells(%i, 22) <> "" Then
%英語受験者 = %英語受験者 + 1
End If
Next
If %英語受験者>0 Then
%英語平均= %英語/%英語受験者
End If
Cells(53,22)=%英語
Cells(54,22)=%英語受験者
Cells(55,22)=%英語平均
!!オーラル
%オーラル=0
%オーラル受験者=0
For %i = 8 To 52
%オーラル = %オーラル + Cells(%i, 24)
Next
For %i = 8 To 52
If Cells(%i, 24) <> "" Then
%オーラル受験者 = %オーラル受験者 + 1
End If
Next
If %オーラル受験者>0 Then
%オーラル平均= %オーラル/%オーラル受験者
End If
Cells(53,24)=%オーラル
Cells(54,24)=%オーラル受験者
Cells(55,24)=%オーラル平均
!!家庭
%家庭=0
%家庭受験者=0
For %i = 8 To 52
%家庭 = %家庭 + Cells(%i, 26)
Next
For %i = 8 To 52
If Cells(%i, 26) <> "" Then
%家庭受験者 = %家庭受験者 + 1
End If
Next
If %家庭受験者>0 Then
%家庭平均= %家庭/%家庭受験者
End If
Cells(53,26)=%家庭
Cells(54,26)=%家庭受験者
Cells(55,26)=%家庭平均
(続く)
投稿情報: 午前 05時08分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
くまぷーの買い求めた一太郎マクロ入門であるが
扱っているのSuper Play Riteではなく
Super のつかないただのPlay Rite である。
マクロ言語が現在のものではなくて古いものである。
しかも扱っている一太郎はVer.5でさらにDOS版なのだ。
一太郎初心者にはかなり、トホホなものなのだが
新しいものが無い以上、贅沢は言っていられない。
付録の2DDのフロッピーがなんとも時代を感じさせてくれる。
さっと目を通してみるとフローチャートが書いてあった。
今時、まともなプログラミングの本からはフローチャートなんて
絶滅してしまったのに・・・ここでもまた古さを感じさせてくれた。
投稿情報: 午前 01時00分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
戯れに「一太郎マクロ」なるものを始めてみた。
WORD一人勝ちの今、いまさら「一太郎マクロ」が
使えるようになったからといって、別にどうということはないのだが
本当になんとなく気まぐれで始めてしまった。
エクセルVBAやアクセスVBAの参考書なら
それこそ腐るほど売っているのだが
ワープロ用のマクロ本となるとワードのものでさえわずかであり
「一太郎マクロ」に関するものは全く手に入らない状態である。
それがアマゾンの中古本コーナーを見ていたら
「らくらく、 かんたん 一太郎マクロ入門 大鳥匠著(以下一太郎マクロ入門)」と
いうのがあったのでこれを買い求め参考にすることにした。
値段は定価2500円が2000円であった。
投稿情報: 午後 10時04分 カテゴリー: 一太郎マクロ初心者奮戦記 | 個別ページ | コメント (0) | トラックバック (0)
この頃、買いたいという気持ちにさせてくれるソフトが出てきません。最後に買ったのが「一太郎2005 & 花子2005スペシャルパック」でした。このソフトも本当に必要だと思って買ったのではありません。機能的には「一太郎11」ぐらいで満足していたわけで何となく惰性で買ってしまったのです。ただ値段が1万5千円を超えていたので買うときにけっこう悩んでしまいましたが。 今回、買った「スタースィート8」は値段が3千円台だったので、話の種にと気楽な気持ちで買ってしまいました。発売元のソースネクストは本当に値付けが上手いと思います。これとほぼ同じ機能を持つ「OpenOffice.org」なら只で使えるということはわかっているのですが、つい衝動的に買ってしまいました。お金を節約するというだけならMSのオフィス2000を既に持っているのだから、それを使えばよいのでが、「スタースィート」の最新版の実力がどんなものだか見てみたかったのです。 さて本当は時間があればゆっくりと全てに渡っていじってから感想を述べればいいのですが今回は取り急ぎ「スタースィート8」の中に含まれているワープロソフト「StarSuite writer」である大発見をしてしまったのでそれを報告します。 下の図を見てください。 | |||
な、な、なんと?! | |||
「StarSuite writer」は一太郎ファイルを読み込むことができるのです。これは驚きです。「スタースィート8」の双子の兄弟の「OpenOffice.org」ではできませんでした。もちろん、一太郎のように複数シートには対応していません。どうやら最初のシートを読み込む仕様のようです。 | |||
(; ;)ホロホロ ありがとう… 君は「一太郎」のことを忘れてはいなかったんだね… | |||
でも「一太郎」形式で保存することはできないんだよな…(-_-;) | |||
| |||
投稿情報: 午後 03時00分 カテゴリー: くまぷーのひとりごと | 個別ページ | コメント (0) | トラックバック (0)
(●`ε´●):前回までで国語の表示項目
得点合計、受験者数、平均は全て求めることが
できた。後はこれを決められたセルに表示させるだけだ。
今日はくまぷーはいないけど、これぐらいなら俺だけでも
大丈夫。今までのコードをまとめると下のようになる・・・。
%国語=0
%国語受験者=0
For %i = 8 To 52
%国語 = %国語 + Cells(%i, 4)
Next
For %i = 8 To 52
If Cells(%i, 4) <> "" Then
%国語受験者 = %国語受験者 + 1
End If
Next
If %国語受験者>0 Then
%国語平均= %国語/%国語受験者
End If
Cells(53,4)=%国語
Cells(54,4)=%国語受験者
Cells(55,4)=%国語平均
投稿情報: 午前 11時57分 カテゴリー: 三四郎マクロ初心者奮戦記, 成績一覧表作成(マクロ版) | 個別ページ | コメント (0) | トラックバック (0)
【´・ω・`】:これはハッキリ言って難問だと思う。
覚悟して欲しい。
(●`ε´●):おい、ずいぶん、気合いが入っているな。
【´・ω・`】:あっさりとやられたらシャッポを脱ぐよ。
問題:A1に入力された「ごじら」をB1に「らじご」と表示させる。
ただし、下のような決うちは不可。
=Right(A1,1) & Mid(A1,2,1) & Left(A1,1)
A1に入る文字数は不定。A1に「きんぐぎどら」とあれば
B1に「らどぎぐんき」と表示させる。
(●`ε´●):くまぷー、おまえはできたのか?
【´・ω・`】:まあな。今までのごじらシリーズでは解答をすぐに
発表していたが、今度は一週間ぐらい後にしようか。
投稿情報: 午前 09時00分 カテゴリー: 文字列操作 | 個別ページ | コメント (3) | トラックバック (0)
今は4月。学校には新入部員勧誘のためのポスターが
あちこちに貼られています。くまぷーが階段を歩いていて
何気なく目を遣ると、くまぷーが顧問をしているバドミントン部の
ポスターがありました。
そのポスターにはイラストが書かれていて
何やら、目に星をちりばめ、スラッとしたにいちゃんが
ラケットを持って微笑んでいます。
よく少女漫画にでてくようなアレです。
ポスターに近づいてよ~くみるとイラストの下に・・・・ 顧問のくまぷー先生 | |
・・・と書いてあるじゃありませんか!! これを目当てにはいってくるものがいたら 完全にサギだけど・・・ま、いいか。(^^ゞ |
投稿情報: 午前 06時44分 カテゴリー: くまぷーのひとりごと | 個別ページ | コメント (0) | トラックバック (0)
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
悪児さんがごじらを逆さまに(6)で出だした問題に
早速取り組んでくれたようだ。
(こちらをどうぞ)
このノリの良さはほんとうにうれしい。
>これは、難問です。ただ、最大文字数が10文字くらいなら、
>簡単にできる。上限は、20文字くらいかな・・・(^^;)(^^;)
・・・と仰っておられる。
どもです。くまぷーは100文字ぐらいまでは可です。
ただし、ワンセル一発ではありません。ワンセル一発では
ありませんが、悪児さんのノリの良さに報いるためにも
芸のないことはしないつもりです。☆☆(゜-゜)ウンッ☆☆
答え合わせは今度の土曜日くらいかな・・・。
こういう問題を一太郎WEBフォーラムで
出したら誰か相手にしてくれるかなあ?
悪児さんは実用的な知識だけでなく
遊び心があるから大好きです(^。^)