玄齋詩歌日誌

アメーバブログを退会しました。ヤフーブログだけ続けます。よろしくお願いいたします。

自由研究・その他

[ リスト ]

先週の終わりから今日まで、「隠岐後鳥羽院和歌大賞」に投稿するための
短歌を作っていました。
 
その短歌を作る際に一つの参考とするために、
万葉集の月の短歌をまとめて読んでみようと思いました。

僕はそういうものをまとめて読むために、Excel で表を作ってから、
その表をプリントアウトしてから読む習慣があります。
その方がいつも読みやすいと思っています。

そこでまず次のサイトから、短歌の部分だけを、
Excel のシートにコピー&ペーストしました。
 
 
 たのしい万葉集: 月(つき)を詠んだ歌
 
http://www6.airnet.ne.jp/manyo/main/nature/tsuki.html
 
 
 
Excel のシートにコピー&ペーストしたら、次のようになりました。
 
 
 
イメージ 1
 
 
これを見ると、その歌の番号と短歌の本文が一つのセルに
まとまってしまっており、
しかも一行一行の間に空白行があるので、
手動で表を作るには時間がかかりそうだと思いました。
 

各行のデータを見てみると、次のようになっています。
 
 0008: 熟田津に船乗りせむと月待てば潮もかなひぬ今は漕ぎ出でな
 
四桁の数字(指定した桁数以下の数値にはゼロを付けた数字)と
コロンと半角スペース、そして短歌の本文という形になっています。
 

このデータの構造は同じなので、
これは Excel の操作を自動化するためのマクロというプログラムに
出来るのではないかと思いました。
 
少なくともマウスで一つ一つ、数百件も処理するよりは
楽だろうと思いました。
 
そこで次のようなマクロのプログラムを書いてみました。
 
 
' ここからがマクロのコードになります。
' この緑色の行はコメント行です。
 
' エラー防止のためのお約束です。
Option Explicit
 
' 短歌と番号を別々のセルに入れて整理するマクロのプログラムです。
Sub 短歌と番号の抜き出し()
 
  ' 変数の宣言です。
  
  ' セルの範囲を示す変数です。
  Dim r As Range
  Dim r2 As Range

  ' セルの文字列の値を格納します。
  Dim sr As String
  
  ' セルの文字列の値を番号と本文に分けて取得する変数です。
  Dim sg() As String
  
  
  ' マウスで選択したセルの範囲の一個一個のセルで、
  ' 処理を行わせるためのループです。
  For Each r In Selection
 
    bLabel:
      
    ' セルの値を変数 sr に代入します。
    sr = r.Value
    
    ' もしセルが空白であれば、
    If sr = "" Then
    
      ' さらにもしその下のセルも空白であれば、
      If r.Offset(1, 0).Value = "" Then
        
        ' ループを抜けます(無限ループを回避するためです)。
        Exit For
       
      End If
     
      ' 現在のセルが空白で、下のセルが空白ではない場合は、
      ' 以下のような処理をします。
     
      ' 現在のセルのすぐ下のセルの範囲を取得します。
      Set r2 = r.Offset(1, 0)
     
      ' 現在のセルを削除します。
      r.Delete Shift:=xlUp
     
      ' すぐ下のセルと現在のセルを入れ換えて、
      '  "bLabel: " とあるマクロの行まで移動します。
      Set r = Nothing
      Set r = r2
      Set r2 = Nothing
      GoTo bLabel
     
     
    ' 普通にデータが入っている場合、
    ElseIf Len(sr) > 7 Then
     
      ' データをコロンと半角スペースを区切りとして、
      ' 番号と短歌の本文に分けます。
      sg = Split(sr, ": ")
     
      ' 右隣のセルに番号を代入します。
      ' セルの書式を四桁の数字にして、
      ' セルの配置を「中央揃え」にします。
      With r.Offset(0, 1)
        .NumberFormat = "0000"
        .HorizontalAlignment = xlCenter
        .Value = sg(0)
      End With
     
      ' 更に右隣のセルに、短歌の本文を代入します。
      r.Offset(0, 2).Value = sg(1)
     
      ' 更に二つ右のセルに、もとのデータを代入します。
      ' もとのデータをなくさないための保険です。
      r.Offset(0, 4).Value = sr
     
      ' 現在のセルのデータを消します。
      r.ClearContents
   
    End If
    Set r = Nothing
 
  Next
 
  ' 列の幅を文字列の長さに揃える処理です。
  Columns(2).EntireColumn.AutoFit
  Columns(3).EntireColumn.AutoFit
  Columns(5).EntireColumn.AutoFit
 
End Sub
' ここまででマクロのコードは終了です。
 
 
このマクロのコードを実行してみます。
 
まず、次の画像のように、マウスで範囲を指定します。
 
イメージ 2
 
 
そしてマクロを実行すると、以下のようになります。
 
 
イメージ 3
 
 
B 列に番号、C 列に短歌の本文が来て、
A 列のもとのデータが消えて、E 列に移動しています。
そして B C E 列のセルの横幅も調整されています。
 
この形に出来るとあとは表作りが楽です。
少し手動で処理をして、仕上がりは以下のようになりました。
 
 
イメージ 4
 
 
こういう作業の間にプログラミングをするのは楽しいです。
 
プログラミングをする間は、漢詩を作っているときと同じように思います。
 
他の Web ページなどでプログラミングの参考になる資料を見つけても
そのまま自分のプログラムに組み込めるわけではないので、
そこで自分で考えて自分のプログラムに使えるように
資料の中身を加工しなければなりません。
 
それが昔の漢詩を参考にして、自分の漢詩を作るときも
同じではないかなと、そう思っています。
 
案外プログラミングが得意な人は漢詩もすぐ作れるのではないかと、
そんな風にも思います。
 
 
いろんな事を学んで実行してみるのは楽しいなといつも思います。
検査入院が終わったあとも、いろんな事を学んでいきたいなと思います。

閉じる コメント(30)

顔アイコン

大岡信の『折々のうた』で気に入ったものの頁の角を折る。新聞やテレビでみつけた好きな句を書き止める。といったことが好きですが、パソコンではやっていない私なので、玄さんの記事には驚きです。

こんな風にパソコンを活用しながら漢詩や短歌の世界がひろがる玄さんにポチ♪です。

「隠岐後鳥羽院和歌大賞」の結果がでたら、詠んだ短歌を載せてくださいね。楽しみにしています。


虹自身時間はありと思ひけれ (安部青蛙)

という句をふと、思い出しました。(何の関係もない思い出しです)

2011/6/27(月) 午後 9:13 [ 風の翼 ]

玄さん忙しい筈なのに、沢山の訪問ありがとうございました。花も薔薇も頑張って咲き続けています。
Excelですか…
色々考えて、適切に出来る方法をパソコンにむかっているんですね。私も仕事で広報誌を作っている最中です。パソコンだけは、自分で操作しながら、試行錯誤の中での、作業は自分的には好きなんですよ。きっと玄さんも向上心が高く、前を向いて進んでいる姿は、素晴らしいです。その前向きな姿勢が、漢詩を詠う事に繋がっているのではないかと思います。沢山学んで下さい。
お体の調子は如何でしょうか?無理せずゆったりと…頑張ってください。

2011/6/27(月) 午後 11:02 [ さんぼうやま ]

顔アイコン

玄さん、脳がバリバリですね。
当方、もう、エクセルでどうこうする気力が無くなりました。
脳が疲れ易くなりましたから。運動不足もありますが。

2011/6/28(火) 午前 8:03 水無瀬より

風の翼さん、コメント + 傑作ポチ、ありがとうございます。
パソコンでいろいろと資料を収集して、Excel にまとめて参考にしています。
今まではこういうプログラミングの知識はあっても、
何に使うべきかということがあまり分からなかったのですが、
最近は何とか活用する機会が得られて楽しいです。
和歌大会は何とか佳作にでも潜り込みたいなと妄想しています。
僕も少しの時間でも活かして学んでいきたいなと思います。

2011/6/28(火) 午前 9:33 白川 玄齋

さんぼうやまさん、コメントありがとうございます。
さんぼうやまさんはお仕事で広報紙を作られているのですね。
それに対して僕のこの記事などは全くの無価値だと思い知らされました。
Excel に堪能な人がビジネスのシステムを構築することを考えるよりも、
ビジネスの世界で経験を積んだ人が苦心して Excel を使って
システムを作ろうとすることの方が
きわめて価値のあることだということを知っています。
この部分を決して間違えてはいけないなと改めて思いました。
もっと謙虚に学んでいこうと思います。
体の調子もきちんと考えていきます。ありがとうございます。

2011/6/28(火) 午前 9:38 白川 玄齋

みなせさん、コメントありがとうございます。
最近になっていろんな事を試している最中です。
みなせさんもお疲れなのですね。お大事になさって下さいね。
僕も少し疲れ気味なので、できる限り無理をしないようにしようと思います。

2011/6/28(火) 午前 9:47 白川 玄齋

顔アイコン

玄さん、すごいですね。私はエクセルさっぱりわからないのですが、自閉症の娘はエクセル2級を持っています。そういう所はすぐれているのでしょうが、社会性がないため就職に結びつきません。玄さんもお体のことがあるからお仕事難しいのでしょうね。普通にこれだけできれば社会に参加できるのに、何だか悔しいですね。失礼なことを書いてすみません。お身体お大事に、検査入院から元気に戻ってきてくださいね。

2011/6/28(火) 午後 4:00 あきこひめ

akiko さん、コメントありがとうございます。
こういう能力が実社会で活かせないのは残念だなと時々思います。
入院が続いて、就職どころではないという状況が続いていましたし、
もし就職していても前回の一年間の入院のあとは、
辞めざるをえなかったのではないかと思います。
僕もあまり落胆をせずに、自分にできることを精一杯していこうと思います。
検査入院の日程が早めに決まってほしいなと思います。
退院のあともまたいろいろと学んでみようと思います。

2011/6/28(火) 午後 4:46 白川 玄齋

顔アイコン

玄さん。。そんなことないですよ・・・人それぞれで、未知の世界を
学ぶことは、決して無駄ではありませんし、学ぶことに、無価値などありません。社会的にも、私の年代は中間層で、年配の社会的実務能力と、若い層の近代社会の情報の習得能力は、目を瞠るばかりです
そのため、同じ職場の土台に立つためには、学んで得ることしかないんだとおもいました。
玄さんも、しっかり心に根を張って学ぶことに邁進してることは、
「得る、修得する」と共通点がありますよ。
広報誌や、資料作成などは、仕事上、否応なしにしなければ、成らないからですよ・・・楽しめることに出会ったのは、ブログもその、一つなんです。

ゆっくりと、のんびりと。。。頑張ってください。

2011/6/28(火) 午後 10:04 [ さんぼうやま ]

顔アイコン

追伸。。。

学ぶことの尊さに。。。ポチ☆

2011/6/28(火) 午後 10:07 [ さんぼうやま ]

顔アイコン

玄さん、おはようございます。学んで実行する大切さを感じます。
マクロは少し勉強してはいるのですが、何か抜けているものがあって、うまくいかず。。
といったことで、もういいやっと投げ出していました。
地道に努力を積み重ねて、それを楽しみと感じることが大切だと思います。
漢詩も忙しくって、今は中休みをしているのですが、
3日坊主にならないように、また落ち着いたらじっくりと
取り組みたいと思います。
くれぐれもお体大切にして下さい。

2011/6/29(水) 午前 9:02 [ - ]

さんぼうやまさん、コメントありがとうございます。
プログラミングの知識が、最近になって漢詩や短歌のデータ収集の際に
役立つようになったことは嬉しく思っています。
しっかりと自分の足元に立って学んでいけばいいのだということがわかりました。
これからも自分の立ち位置から適切にきちんと学んでいこうと思います。
とりあえず検査入院が終わってから、本格的に取り組もうと思います。
身体にも気をつけていこうと思います。

2011/6/29(水) 午前 10:08 白川 玄齋

さんぼうやまさん、傑作ポチもありがとうございます。
これからも地道に努力していこうと思います。

2011/6/29(水) 午前 10:08 白川 玄齋

まーるさん、コメントありがとうございます。
マクロは VisualBasic の基本的な文法を学んだ上で、
Excel の「マクロの記録」というコマンドを使って、
どういうマクロのコードを書けばどういう動作をするかを調べて書いています。
今まではどんなデータを扱えばいいかが分からなかったのですが、
最近になってそれが分かってきたことで楽しくなってきました。
またまーるさんの落ち着いたときに、漢詩も無理なく学んでいただければ嬉しいです。
この暑い時期ですので、きちんと体調管理をしていこうと思います。
またゆっくりと漢詩も作っていこうと思います。

2011/6/29(水) 午前 10:21 白川 玄齋

顔アイコン

玄さん

エクセルに関しては ちんぷんかんぷんです〜・・泣。

短歌は楽しみです!! 過去の短歌記事ちらっと見せて
いただきました。
あの震災の頃は 入院してらしたのですか。
次の短歌も楽しみに待っています。
体調の良い日々をお祈りしていますね!!

2011/6/29(水) 午後 4:17 ある おかん

ある おかんさん、コメントありがとうございます。
またややこしいブログ記事を書いてしまったなと思っています。
短歌など、分かりやすい記事も何とか作りたいなと思います。
入院中は読書のペースが速まってしまって、読むものがなかったので
一日十首ほど短歌を作って自由時間をつぶしていました。
最近は単なる日記のような短歌になってしまっていますので、
もっときちんと作り直していこうと思います。
体調を気遣いながら、少しずつでも学んでいこうと思います。

2011/6/29(水) 午後 5:23 白川 玄齋

こんばんわ✿
万葉集いいですねっ^^
好きでした♪
エクセルはお仕事で使っていますが使い易いですね✿
こういう使い方もできるのですねっ
勉強になりました。
ありがとうございます*^-^*
傑作ポチッ✿+:;;:+♫+:;;:+✿+:;;:+♫+:;;:+✿+:;;:+♫+:;;:+✿

2011/6/30(木) 午後 8:32 ゆーみん♪

顔アイコン

情報でやるまで使い方は分からなそうです。
僕も見習って勉強しますか。
(学校の方です。)

2011/7/7(木) 午後 9:10 [ - ]

ゆーみんさん、コメント + 傑作ポチ、ありがとうございます。
この記事にコメントされていることに今気づきました。
冷や汗が出ました。大変申し訳ありません。
表の形に文章をまとめるのも Excel を使うと便利です。
いろんな使い方を試しています。昔の詩人の漢詩を読むのにも便利です。
万葉集も読み返しています。いろんなものを参考にしたいです。
検査入院から帰ってきた後は、いろんな事をきちんと学んでいこうと思います。

2011/7/7(木) 午後 9:23 白川 玄齋

都会の蟷螂さん、コメントありがとうございます。
情報の授業ですか。僕の高校生の頃は受験の前に
プログラミングの実習が少しあった程度です。
今はうらやましい環境に思いました。
授業の中で学んでいけるのはいいですね。面白そうですね。

2011/7/7(木) 午後 9:26 白川 玄齋


.

ブログバナー

白川 玄齋
白川 玄齋
男性 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について
検索 検索

詩歌関連

写真・画像関連

文学・語学・その他

殿堂入り

自由律俳句

登録されていません

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

よしもとブログランキング

もっと見る

[PR]お得情報

数量限定!イオンおまとめ企画
「無料お試しクーポン」か
「値引きクーポン」が必ず当たる!
CMで話題のふるさと納税サイトさとふる
毎日お礼品ランキング更新中!
2019年のふるさと納税は≪12/31まで≫

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事