視力障害者とエクセルの表

[ リスト | 詳細 ]

記事検索
検索

全2ページ

[1] [2]

[ 次のページ ]

途中から見られている方には何のことかわからないへんなブログですが、視力障害者がエクセルの表を作る事が簡単に出来るようなエクセルファイルを作ったので、その製作した過程と方法、それにブログを書きながら検証しもっと良いものを作ろうと思っています。
上記から始まっています。
今回は表の項目と確認とその表を聞きやすくするためセルの結合方法です。セルの結合は作っている下記のファイルでは
ここからダウンロードして試してください。
セルに直接関数を入れて結合させましたが、マクロで出来ないか考えたら今回の方法を思いつきました。
イメージ 1
項目は、店名・洗濯機、冷蔵庫、掃除機の4項目
データーを室蘭・登別・伊達の3データーです。
今回のマクロは
'項目数チェック
For i = 1 To 16
If Cells(1, i) = "" Then GoTo 100
Next i
100
a = i - 1
MsgBox ("項目の数は、" & a & "です。")
For i = 1 To a
b = b & "。" & Cells(1, i)
Next i
MsgBox (b)
'各店の在庫
For i = 1 To 3
b = ""
For j = 2 To 4
b = b & Cells(1, j) & "。" & Cells(i + 1, j) & "。"
Next j
MsgBox (Cells(i + 1, 1) & "の在庫は" & b)
Next i
End Sub
項目は16しか作れないようにしているので16まで
For i = 1 To 16
If Cells(1, i) = "" Then GoTo 100
Next i
始めにiが1なのでCells(1, )は店名 データがあるので
上に戻りiが2になりCells(1, )は洗濯機データがあるので
上に戻りiが3になりCells(1, )は冷蔵庫データがあるので
上に戻りiが4になりCells(1, )は掃除機 データがあるので
上に戻りiが5になりCells(1, )は なデータが無いので
データーが無ければ100番地に行きなさい。
If Cells(1, i) = "" Then GoTo 100
a = i - 1
iは5なので1減らしてこれでa=4になりました。
次にこの項目数を利用してデーターを結合
項目行のデーターを結合するのが
For i = 1 To a
b = b & "。" & Cells(1, i)
Next i

始めにiが1なのでb=""+。 +Cells(1, )は店名 を結合
b="。店名"
上に戻りiが2になりb="。店名+。 +Cells(1, )は洗濯機 を結合
b="。店名。洗濯機"
項目数分を繰り返しb="。店名。洗濯機。冷蔵庫。掃除機 ”
'各店の在庫以降はこれの応用です。
上記に今回のエクセルファイルがあります。
マクロを有効にしてファイルが開いたらマクロボタンと表に有るので
そこをクリックしてください。
開いたメッセージボックスの部分を視力障害者のかたが通常使う音声ソフトが読み上げるので表の内容がわかります。句点は通常マルとは読みませんので聞きやすくするために使っています。また結合で12と34では1234となるので句点をつけることで12。34とふたつのデーターとして読み上げてくれます。
データー入力や今回の項目数の確認など組み合わせると視力障害者の方でも表が出来ます。キー操作と頭の中で表が作れる神業のかたがその操作方法をインターネットで公開していました。すごすぎますが、私の考えているのは、どなたでも簡単にパソコンが操作できるようにと思っています。車のオートマチック、テレビのリモコン、携帯電話など便利なものが出来ています。私の尊敬する方は、始めにハートウェアーということを提唱されました。ハードウェアーとソフトウェアーのほかに、これも大事であると言う事ですが、ほんのちょっぴりハートウェアーが出来たかなと思っています。
 
イメージ 1
項目を移動する場合の例
今回のエクセルファイルは
ここからダウンロードして試してください。
http://hwsa3.gyao.ne.jp/junyou/bf_exell.xls
確認のため並べ替えをしていると
項目をひとつ右に移動したいときにはどうするかという機能を追加しました。
その方法は
鹿児島弁の列と仙台弁の列を変えます。
bf_exell.xlsは手抜きをしてデーター数分の交換でよいのに300のデータを取り替えました。時間が結構かかるのでこれも修正する予定です。
もし自分が上記の図を単純に交換するには
イメージ 2
イメージ 3
挿入した列に仙台弁をいれ四国弁を切り取り仙台弁に貼り付ければ出来上がりですが。
マクロでする場合一番上の図では
Cells(1, 2) =鹿児島弁 Cells(1,3)=仙台弁になっているので
a=Cells(1, 2) 
この時  Cells(1, 2) =鹿児島弁 a =鹿児島弁 Cells(1,3)=仙台弁
Cells(1, 2) =Cells(1,3)
この時  Cells(1, 2) =仙台弁 a =鹿児島弁 Cells(1,3)=仙台弁
Cells(1,3) =a
この時  Cells(1, 2) =仙台弁 a =鹿児島弁 Cells(1,3)=鹿児島弁
これで項目が入れ替わった事になります。
これを音声ソフトで確認できる等にマクロを作ると
 MsgBox ("項目" & Cells(1, 2) & "と。" & Cells(1 3)  & "の列を入れ替えます。")
for i=1 to 4(データー数)
a=Cells(i, 2) 
Cells(i, 2) =Cells(i,3)
Cells(i, 3) =a
next i
 
数字はわかりやすい全角にしています。
昔のベーシックでは
swap関数があり
a=Cells(i, 2) 
Cells(i, 2) =Cells(i,3)
Cells(i, 3) =a
は Cells(i, 2)  swap Cells(i,3)
を使いました。
古い並べ替えの方法でよくこれでデーターを入れ替えました。
上記ファイルで並べ替えの時に使っています。
シャープのポケコンにヒープ配列による並べ替えの方法が書いてあり
その方法で並べ替えをすると早いという事で試して出来ました。理屈が理解できないのと、今のパソコンの性能では充分並べ替えが早いので使っていないのと、
の方法が使えるので並べ替えは上記の方法にしました。
 
 
項目の並べ替えを次のようにしました。
新しいマクロの記録で算数の点数の小さい順に並べるマクロを作りました
イメージ 1
 Range("A2:D4").Select
    Application.WindowState = xlMinimized
    Application.WindowState = xlNormal
    Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlNo, _
     OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin, DataOption1:=xlSortNormal
    Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlNo, _
       OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _        :=xlPinYin, DataOption1:=xlSortNormal
 
 Range("A2:D4").Select
これは
 Range(cells(2,1),cells(4,4).Select
Key1:=Range("C2"),
これは
Key1:=Cells(2, 3),
Order1:=xlAscending,
xlAscending,昇順 今回はこれを使用
xlDescending  降順
Header:=xlNo,
xlGue  先頭行が見出しであるかどうかをExcelに自動で判断
xlNo  範囲全体が並べ替えの対象となります
xlYes  先頭行をタイトル行並べ替え 今回はこれを使用
 
Order1:=xlAscending,
xlTopToBottom 行方向の並べ替え 今回はこれを使用
xlLeftToRight 列方向の並べ替え

bf-exell では
 Range(Cells(6, 1), Cells(5 + Cells(3, 12), 1 + Cells(2, 12))).Select
    Selection.Sort Key1:=Cells(6, i), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin, DataOption1:=xlSortNormal
 Range(Cells(6, 1), Cells(5 + Cells(3, 12), 1 + Cells(2, 12))).Select
入力されているデーター全範囲
Key1:=Cells(6, i),
iはどの項目かの変数、ひづけは一番左端に固定しているのでひづけを選択すればi=1になります。
他のオプションは昇順なので例の成績順では成績の低い順番で通常の逆なのですが昇順降順を選ばせると使用者が煩雑になりそうなのでやめました。読み上げ順を逆にしても良いので将来必要であればどちらかで対応しようと思います。
 
 
エクセルのような表計算ソフトの場合
セルのデーターだけ読上げてもそれは何かわかりません。

表全体のイメージがわかなければ役に立ちません。
そのセルにデータを入れたかわからなければ
視力障害者の方は大きなグランドの中に落ちたゴマを探すようなものです。

そこにデータを入れ、それが間違い無く入力されたか確認も必要です。
視力障害者は音声ソフトを使っているので、出来れば音声ソフトに対応できていれば良いと思っています。

下のマクロは、マクロを有効にするか確認し有効にしたら自動的にエクセルが開き3行3列の表に位置を確認させ、入力し、データーが正しく入力できたか確認し上書き保存で表を閉じます。
エクセルに直接入力すると間違って隣のセルに行ったりすることを防ぎ
InputBox、MsgBox は音声ソフトが読上げてくれます。
クロの確認もその表示を見て直すことが出来ます。(マクロが正しいか毎回音声付で確認するのはしんどいので)
 
Sub auto_open()
'入力
for i=1 to 3
 for j=1 to 3
cells(i,j)= InputBox("上から" & i & "番目。左から" & j & "番目のセルに入力してください。")
next j
 next i
 '入力確認
for i=1 to 3
 for j=1 to 3
MsgBox ("上から" & i & "番目。左から" & j & "番目のセルは、" & cells(i,j) & "です。")
next j
 next i
MsgBox ("上書きして終了します。")
'上書き保存するマクロ終了
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
 
 

 
4月22日に
Cells(1, 11) に関数=NOW()を入れて
表示をセルの書式設定で次のように表示させ
平成22年4月22日
それをマクロのメッセージボックスで表示させ
IBMデスクトップリーダー(旧)で読上げると
MsgBox (Cells(1, 11) )
時間まで読上げます
2010/4/22 13:14:15
 
わかりやすく読ませるために
Cells(1, 11) に関数=TEXT(NOW(),"Y年m月d日")を入れると
10年4月22日と読上げてくれます。
関数を=TEXT(NOW(),"YYYY年m月d日")とすると
2010年4月22日と読上げました。
今まで関数=TEXT(NOW(),"Y年m月d日")を入れていたので
10年4月22日と表示された分を
MsgBox ("ニセン" & Cells(1, 11) )
と足りない分を補っていました。
年号表示も出来そうなので今後直していくつもりです。
エクセルの読上げ機能を使う場合
jは変数です。それとテキストを組み合わせた場合
Application.Speech.Speak (j & "番目のデータは。")
セルを読上げル場合
入力をh22/4/21として設定で平成22年4月21日とそのまま読ませる場合
Cells(5, l).Speak , False
計算式を読ませるには
Cells(5, l).Speak , true
 
Range("A1:C3").Speak xlSpeakByRows
これをcell表記にする場合
Range(Cells(1, 1),Cells(3, 3)).Speak xlSpeakByRows

A1→A2→A3→B1→B2→B3→C1→C2→C3と読上げます。
次のようにすると
Range(Cells(1, 1),Cells(3, 3)).Speak xlSpeakByRows, true
A1→B1→C1→A2→B2→C2→A3→B3→C3と縦に計算式を読上げます。

 

全2ページ

[1] [2]

[ 次のページ ]


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

もっと見る

[PR]お得情報

ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!

その他のキャンペーン


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

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

みんなの更新記事