advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 228 for エラー値 #N/A (0.017 sec.)
エラー値 (861), #n/a (1385)
[[20150704031617]]
#score: 10842
@digest: b59501a7e4df2398ba650e307586e8df
@id: 68413
@mdate: 2015-07-04T11:27:29Z
@size: 8981
@type: text/plain
#keywords: myitalic (60898), mybold (48198), myha (38086), mysize (30436), standardfontsize (25703), 列÷ (18278), italic (15640), 常ベ (14761), 中学 (11995), ル左 (10718), xlleft (10075), xlgeneral (7557), オタ (7299), 学生 (7191), 斜体 (6339), horizontalalignment (5631), ck (5566), 左詰 (4195), font (3260), 太字 (2949), val (2701), xlcenter (2588), (中 (2022), 土) (1802), offset (1779), 未満 (1507), トサ (1488), 2015 (1459), double (1363), ラム (1300), boolean (1102), 表記 (968)
『表の表記』(中学生)
お世話になります。 表の比を求めて、値によってセルの数値の位置、太字、斜体そしてフォントの大きさを 変える。という事をしたいのです。 表はA5からAG30の範囲で、A列÷B列 B列÷C列・・・AF列÷AG列といった具合で 各セルの値(割る方のセル)を位置などずらしておおよその比を判断するというものです。 只、値のないところは N/A の表記になってます。 処理としては 比が 2以上でフォントサイズを12に設定。 2未満、1.75以上で、セル左詰、太字、斜体。 1.75未満、1.5以上で、セル左詰、太字。 1.5未満、1.25以上で、セル左詰。 1.25未満は何もしません。 プログラムを書きたいのですが、知識不足と自分のPCがないので思う様に 出来ません。 また、プログラムオタクの友人が異国に行ってしまったので 聞ける人がいません。 ちなみに私はハードオタクです。 諸先輩方の知恵をお貸し頂けると大変助かります。 それと、異国の友人が言っていた事で気になった事が、for nextは 各列ごとに処理していないから気をつけろ!と言われました。 (おそらく、for nextで処理すると思ったもので・・・) 合わせて教えて頂けると嬉しいです。 宜しくお願いします。 < 使用 Excel:Excel2007、使用 OS:Windows7 > ---- 条件付き書式 というもので対応してはいかがでしょうか。 (γ) 2015/07/04(土) 07:21 ---- 私もγさん同様、条件付書式で対応するのがいいのではと思います。 値が変われば瞬時に状態も変わりますので。 ただ、残念なことに、条件付書式ではフォントサイズの設定やセル内の横位置の設定ができないですねぇ。 なので、マクロ処理ということで。 書いただけで、コンパイルレベルのチェックしかしていませんが。 (これをChangeイベントあたりで処理すれば、値が変わった時に瞬時に書式もかわりますけど、とりあえず) Sub Sample() Dim r As Range Dim c As Range Dim myBold As Boolean Dim myItalic As Boolean Dim myHA As Long Dim mySize As Double Dim ck As Double Application.ScreenUpdating = False With Range("A5:G30") 'いったんすべてのセルの状態を通常ベースにする .Font.Size = Application.StandardFontSize .Font.Italic = False .Font.Bold = False .HorizontalAlignment = xlCenter For Each r In .Cells.Rows For Each c In r.Cells If Not IsEmpty(c.Offset(, 1)) Then ck = c.Value / c.Offset(, 1).Value If ck >= 1.25 Then mySize = Application.StandardFontSize myItalic = False myBold = False myHA = xlCenter Select Case ck Case Is < 1.5 myHA = xlLeft Case Is < 1.75 myHA = xlLeft myBold = True Case Is < 2 myHA = xlLeft myBold = True myItalic = True Case Else mySize = 12 End Select With c .Font.Size = mySize .Font.Italic = myItalic .Font.Bold = myBold .HorizontalAlignment = myHA End With End If End If Next Next End With End Sub (β) 2015/07/04(土) 07:48 ---- β様、γ様 回答ありがとうございます。 中学のボランティア活動で近所の川の清掃をしていたので返事が遅れました。 すみませんでした。 β様プログラムまで書いて頂きありがとうございます。 プログラムを実行したところ ck = c.Value / c.Offset(, 1).Value - 型が一致しませんと出ます。 どうしたら良いのですか? 教えてください。 (中学生) 2015/07/04(土) 13:09 ---- 領域内のセルはすべて数字か空白だと思っているんですが、文字列なんかもあるということですか? あるいは、式なんかが入っていて、空白になっているところがあるとか? もし、そういったことがあるなら If Not IsEmpty(c.Offset(, 1)) Then ck = c.Value / c.Offset(, 1).Value これを If Val(c.Offset(, 1).Value) <> 0 Then ck = Val(c.Value)/ Val(c.Offset(, 1).Value) こうして試してみてください。 (β) 2015/07/04(土) 14:04 ---- >あるいは、式なんかが入っていて、空白になっているところがあるとか? 空白でなく、エラーになっている(#N/A)ということだと思われます (マナ) 2015/07/04(土) 14:23 ---- To マナさん あぁ、そうですね。ご指摘深謝。 To 中学生 さん エラー値セルの対応、加えて、心配なので、数値変換してチェックしたものを以下に。 (ついでに、アップ済みの初期値設定の値で誤りがありましたので、それも直してあります) Sub Sample2() Dim r As Range Dim c As Range Dim myBold As Boolean Dim myItalic As Boolean Dim myHA As Long Dim mySize As Double Dim ck As Double Application.ScreenUpdating = False With Range("A5:G30") 'いったんすべてのセルの状態を通常ベースにする .Font.Size = Application.StandardFontSize .Font.Italic = False .Font.Bold = False .HorizontalAlignment = xlGeneral For Each r In .Cells.Rows For Each c In r.Cells If Not IsError(c) And Not IsError(c.Offset(, 1)) Then If Val(c.Offset(, 1).Value) <> 0 Then ck = Val(c.Value) / Val(c.Offset(, 1).Value) If ck >= 1.25 Then mySize = Application.StandardFontSize myItalic = False myBold = False myHA = xlGeneral Select Case ck Case Is < 1.5 myHA = xlLeft Case Is < 1.75 myHA = xlLeft myBold = True Case Is < 2 myHA = xlLeft myBold = True myItalic = True Case Else mySize = 12 End Select With c .Font.Size = mySize .Font.Italic = myItalic .Font.Bold = myBold .HorizontalAlignment = myHA End With End If End If End If Next Next End With End Sub (β) 2015/07/04(土) 14:33 ---- β様、マナ様 ありがとうございます。 β様 早速動かせてみましたけど処理が逆でした。 ck = Val(c.Value) / Val(c.Offset(, 1).Value)を下記の ck = Val(c.Offset(, 1).Value) / Val(c.Value)に変更してみました。 すると エラーで 0で除算しました。が表示されます。 この時のVal(c.Value)は N/A の表記でセルに入ってます。 どうしたら良いのでしょうか? (中学生) 2015/07/04(土) 15:05 ---- If Val(c.Offset(, 1).Value) <> 0 Then これを If Val(c.Offset.Value) <> 0 Then に。 (β) 2015/07/04(土) 15:41 ---- β様 ありがとうございます。 プログラムは動くのですが、割られる数の方が処理されます。 A列(割られる数)÷ B列(割る数)=ck 割る数を処理したいのですがどの様にすれば良いのでしょうか? (中学生) 2015/07/04(土) 16:08 ---- コードをよ〜く、おいかけるとわかると思うのですがね? コードでは まず 対象の領域からセルを抜出し、c という変数に格納しています。 で、c.Offset(,1) は c の右隣りのセル。c.Offset(,-1) は c の左隣のセルです。 どちらを、どちらで割るのか、それは、要件次第。 A/B ではなく B/A だったので、そちらで、ck = Val(c.Offset(, 1).Value) / Val(c.Value) にしたわけですよね。 ちゃんと、そこのところは、コードから理解されたんですよね。 で、問題は、どこのセルに対して、書式をセットするかということですね。 コードでは、 With c .Font.Size = mySize .Font.Italic = myItalic .Font.Bold = myBold .HorizontalAlignment = myHA End With c つまり、A のセルに対して行っていますね。 ここを、そうではなく、割るほうのセル B のセルにしたいということなら、この With c の c を 何かに変えればいいと思いませんか。で、何に変えるべきかはおわかりですよね。 (β) 2015/07/04(土) 17:59 ---- β様 最後までご指導ありがとうございました。 希望通りの動きで感動しました。 今までハードだけだったのでソフトの方もやりたいと思います。 受験勉強が終わって自由な時間が出来たら頑張ってみようと思います。 (中学生) 2015/07/04(土) 20:27 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201507/20150704031617.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97040 documents and 608209 words.

訪問者:カウンタValid HTML 4.01 Transitional