トラブル!?

【Selection】に関するトラブルや質問・回答をYahoo!知恵袋より検索します。

質問日時:2010/03/11 18:27:31  解決日時:2010/03/12 20:17:34  その他の回答:2
トップ > インターネット、PCと家電ソフトウェアOffice系(Word、Excel)

VBA で セル範囲に条件付き書式を設定するVBA初心者です。Excel2003を使っています。どのように書いたら...

VBA で セル範囲に条件付き書式を設定するVBA初心者です。Excel2003を使っています。どのように書いたらいいか、教えて下さいA列に2〜500行まで、番号が入力されています。B列は2〜500行までランダムで、空白か「*」が入っています。それぞれ1行目はタイトルです。A列のセルの隣のセルが空白か*かで、A列のセルを色分けしたいと思っています。空白なら黄色、*なら灰色です。B2が空白ならA2を黄色。B3が*ならA3を灰色、というように。1度,「マクロで記録」を使って以下のようにエクセルを操作して記録したのですが、その後のマクロの実行がうまく動きません。操作は記録の開始↓A2:A500を選択(A2がアクティブ)↓条件付き書式の設定↓条件1:数式が「=B2="*"」と等しいとき、パターン灰色条件2:数式が「=B2=""」と等しいとき、パターン黄色↓Ctrlを押しながらOK↓記録の終了すると以下のようなコードが書かれました。Range(Cells(2, 1), Cells(500, 1)).Select Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=B2=""*""" Selection.FormatConditions(2).Interior.ColorIndex = 15 Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=B2=""""" Selection.FormatConditions(3).Interior.ColorIndex = 6しかしマクロを実行しても、A列セルの色はすべて同じ。B2ですべて判断されているようです。ただ、実行した後で例えばA100で条件付き書式を見てみると、B100のセルによって色分けされるように式は書かれています。コードの問題でしょうか?それとも別の、エクセルのファイルの問題でしょうか?マクロを実行した後でもB列のデータは変更します。その変更によってもA列の色はちゃんと変わるようにしたいので、条件付き書式を使って色分けさせたいのですが。。。よろしくお願いします

【ベストアンサー】

通常、VBAでは条件付き書式なんて使いません。If…Then…Elseステートメントを使って条件に合っているかどうかを判断し色付けを行います。さらに、doステートメントやforステートメントを使ってセル範囲に繰り返します。例えば、A2:A500のセル範囲に「*」が入力されていたら灰色に塗りつぶし、空欄ならば黄色に塗りつぶすには下のようなコードになるでしょう。For i = 2 To 500If Cells(i, "B") = "*" ThenCells(i, "A").Interior.ColorIndex = 15 ' 25%灰色ElseIf Cells(i, "B") = "" ThenCells(i, "A").Interior.ColorIndex = 6 ' 黄色ElseCells(i, "A").Interior.ColorIndex = xlNone ' 色なしEnd IfNext i補足に対する回答です。条件付き書式はExcelの機能です。あえてVBAにする必要はないと思うのですが…。普通に条件付き書式を設定するのがbestではないかと思います。

家族葬なら

質問日時:2010/03/11 17:30:45  解決日時:2010/03/13 23:20:23  その他の回答:1
トップ > 教養と学問、サイエンス言葉、語学英語

読解問題ですが、itが何を指しているのかわかりません。お願いします。If you have a barrel of beans, ...

読解問題ですが、itが何を指しているのかわかりません。お願いします。If you have a barrel of beans, some red and some white , there is only one way to find out precisely how many of each color you have; Cound'em. There is an easier way to discover about how many are red. Pull out a handful of beans and count just those, assuming that the proportion will be the same all through the barrel. If your sample is large enough and selected properly , it will represent the whole well enough for most purposes. If, however, it fails in either respect , it may be far less accurate than an intelligent guess and have nothing to recommend it except a false air of scientific precision.It is sad truth that conclusion from such samples , biased by the mothod of selection, or too small, or both , lie behind much of what we read or think we know.If however以降の解答訳は「しかし、もしどちらも失敗したのなら、知的な推論よりもよっぽど不確かなものになるかもしれなく、科学の精密さという誤った態度以外には、あまり勧められない。方法の選択によって、また小さすぎるまたはその両方によって偏見がかかったそのようなサンプルからの結論が、私たちが今読んだり考えたりする多くのものにあるというのは悲しい事実である」と書いてありました。まずIf,however, it fails のit=your sampleでいいでしょうか?it may be のit= your sampleまたはan easier wayのどっちでしょうか? recommend it のit もわかりません。だけど後半のitの2つが両方ともyour sampleだったらrecommend itselfと再帰代名詞にするべきかまたはitが必要ないかと思うので、it may beのit=your sampleでrecommend it のit = an easier wayだろうと予測しましたが、どうでしょうか?だいたいitを使いすぎて解かりにくい文です。勘弁してほしいです(泣)。あと最後の文でtoo smallはtoo small samplesの省略、bothは both the method of selection and too small samplesの省略と考えても宜しいでしょうか?長々と書いてすいません。過去の入試問題だと思うのですが、どこの大学だかは書いてありませんでした。読解が得意な方お願いします。

【ベストアンサー】

しかし、それ(豆をつかむという試み)において「サンプル数が大きい」という条件と「適切に選択する」という条件のいずれかでも満たしていなければ、このような試みを行っても、その結果は単に推測して出した値より正確さにおいてはるかに劣り、質もよくない。ただ科学的な正確さを伴っているという誤った雰囲気をかもし出すだけである。サンプルの選択方法が誤っているか、サンプル数が少なすぎるか、またはその両方が当てはまる場合には、サンプリングから得られる結論は歪められたものになるが、こうしたことは、残念ながら我々が読む物や我々が知っていると思っている事柄の多くの背後に存在する。追記have nothing to recommend itは成句。(意味は「質がよくない」)。

転職

質問日時:2010/03/11 08:57:50  解決日時:2010/03/13 21:49:17  その他の回答:1
トップ > インターネット、PCと家電ソフトウェアOffice系(Word、Excel)

範囲外も置換されてしまいます。エクセル2000で、列選択して一括置換処理をするマクロを使っていたので...

範囲外も置換されてしまいます。エクセル2000で、列選択して一括置換処理をするマクロを使っていたのですが、エクセル2007で同じ処理をすると指定した範囲(B列とE列)以外のデータも置換されてしまいました。マクロはこのようになっています。Sub 字変換() CNT = Application.CountA(Range("M3:M20000")) + 2 CO = ActiveCell.Column RO = ActiveCell.Row Range("B3:B" & CNT).Select Selection.Replace What:="大字", Replacement:="" Selection.Replace What:="小字", Replacement:="" Selection.Replace What:="字", Replacement:="" Range("E3:E" & CNT).Select Selection.Replace What:="大字", Replacement:="" Selection.Replace What:="小字", Replacement:="" Selection.Replace What:="字", Replacement:="" Range(Cells(2, CO), Cells(2, CO)).SelectEnd Sub

【ベストアンサー】

特に問題なさそうだけどね〜Option ExplicitSub 字変換()Dim cnt As LongDim RO As Longcnt = Application.CountA(Range("M3:M20000")) + 2RO = ActiveCell.RowRange("B3:B" & cnt).SelectWith Selection .Replace What:="大字", Replacement:="" .Replace What:="小字", Replacement:="" .Replace What:="字", Replacement:=""End WithRange("E3:E" & cnt).SelectWith Selection .Replace What:="大字", Replacement:="" .Replace What:="小字", Replacement:="" .Replace What:="字", Replacement:=""End WithEnd Sub範囲を限定して置き換えたいなら指定範囲をループで置き換えするほうが確実かもしれません。myAry = Array("大字", "小字", "字")For Each myCel In Range("B3:B"&cnt) For i = 0 To 2 If myCel = myAry(i) Then myCel = "" End If Next iNextなどのようにもし文字列の一部置き換えの場合は以下のようにmyAry = Array("大字", "小字", "字")For Each myCel In Range("B1:B10") For i = 0 To 2 If InStr(myCel, myAry(i)) Then myCel = Replace(myCel, myAry(i), "") End If Next iNext

質問日時:2010/03/10 20:04:10  解決日時:2010/03/15 18:43:36  その他の回答:1
トップ > インターネット、PCと家電ソフトウェアOffice系(Word、Excel)

ソートメソッドで行の並び替えを行う際に、特定の行やセルに設定してある条件付書式も一緒に並び替えら...

ソートメソッドで行の並び替えを行う際に、特定の行やセルに設定してある条件付書式も一緒に並び替えられる方法を教えてください。以下は、マクロで行のソートを行う一般的なコードですPrivate Sub 並び替え_Click() Range("A1:Z100").Select Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod :=xlPinYinEnd Subこのコードだけでは、それぞれの行に記入してあるデータや書式はソート順に並び替えられますが、特定の行やセルに設定してある条件付書式は、一緒に並び替えられずに移動しません。出来ればこのソートメソッドで条件付書式も含めて並び替えたいのですが、やり方をご存知の方は教えてください。ちなみに、Excel2000です

【ベストアンサー】

それは無理そうです。作業セルを使ってソート前にフラグをたててソート後そのフラグをもとに条件付き書式を再設定するよりないと思います。

自分のチカラでうつ病から脱出できた!うつ病改善マニュアル

「一日も早く この辛い気持ちの毎日から抜け出したい」「本当に このまま休んでいて 改善していくのだろうか?」と うつ病で悩んでいる方 私も 同じ道を通ってきたのでよくわかります 何ともいえない辛い気持ちで誰にもわかってもらえないこの苦しさは筆舌に尽くしがたいものがあります 私に少しだけお付き合いくださるというのであれば5分間だけ お時間をいただけないでしょうか? 私が実践してきた 90日でうつ病 から脱出し元気な自分に戻る方法についてご紹介いたします

質問日時:2010/03/10 03:55:31  解決日時:2010/03/10 18:10:31  その他の回答:1
トップ > インターネット、PCと家電ソフトウェアOffice系(Word、Excel)

エクセルの置換についてF1に検索する文字列0310と入力し、G1に置換する文字列0311を入力してマクロを...

エクセルの置換についてF1に検索する文字列0310と入力し、G1に置換する文字列0311を入力してマクロを組んだのですが、中身をみると、0310と0311で固定されていました。置換したい文字列は毎日かわります。マクロではむりでしょうか Sheets("moto").Select Application.CutCopyMode = False Sheets("moto").Copy Before:=Sheets(1) Range("G1").Select Selection.Copy Range("F1").Select Application.CutCopyMode = False Selection.Copy Cells.Replace What:="●", Replacement:="●", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Range("F18:I33").Select Application.CutCopyMode = False Selection.ClearContents ActiveWindow.SmallScroll Down:=12 Range("D48").Select Selection.ClearContents ActiveWindow.SmallScroll Down:=-33 Range("B1:D1").SelectEnd Sub●のところが修正必要ですよね

【ベストアンサー】

やりたいことの全容が把握できませんがCells.Replace What:=Range("F1").Value, Replacement:=Range("G1").Value, LookAt:=xlPartだけでいいような気が。。。。

家具インテリア

質問日時:2010/03/09 23:08:42  解決日時:2010/03/10 09:06:53  その他の回答:2
トップ > コンピュータテクノロジープログラミングVisual Basic

マクロで各シートのヘッダー一覧とその更新をしたいいつもお世話になっております。またご教授頂けませ...

マクロで各シートのヘッダー一覧とその更新をしたいいつもお世話になっております。またご教授頂けませんでしょうか。下記のマクロにて、シートの一覧(ハイパーリンク)をT4以下に作成しております。?下記のマクロを実行した際に、それぞれのシート名の右側(U4以下)に各シートのヘッダー一覧も作成したい?ヘッダー一覧を修正して各シートに反映させたい。可能であれば??を一括で行いたいのですが、どのようにしたら良いのでしょうか?---------------------------------Sub シート名再読込() Application.ScreenUpdating = False Columns("T:T").Select Selection.ClearContents Dim i As Long n = 4 For i = 2 To Sheets.Count If Sheets(i).Visible = True Then With Sheets("シート名") .Cells(n, 20) = Sheets(i).Name .Hyperlinks.Add Anchor:=.Cells(n, 20), _ Address:="", _ SubAddress:="'" & Sheets(i).Name & "'" & "!g3", _ TextToDisplay:=.Cells(n, 20).Value End With n = n + 1 End If Next i Sheets("シート名").Range("t3") = "シート名一覧(Link)" ActiveWorkbook.Names.Add Name:=ActiveSheet.Name, _ RefersToR1C1:="=" & ActiveSheet.Name & "!R1C1" Columns("T:T").Select With Selection.Font .Name = "MS Pゴシック" .Size = 12 End With Range("A1").SelectEnd Sub

【ベストアンサー】

ognihs4n5さん、どうもです。ソースの追加部だけ記述しておきます。以下の部分を反映して下さい。*下記ソースは、U列:左ヘッダ/V列:中央ヘッダ/W列:右ヘッダ (4行目以下)*ソースの構成は以下2種類です。1.現在のヘッダ情報⇒[シート名]セルに反映2.[シート名]セル⇒ヘッダ情報に反映本来1と2が混在する事はないのですが現在のヘッダ情報を手入力でセルに反映するのも面倒なので、初回は両方実行して下さい。正しくヘッダ情報がセルに反映されたか確認して下さい。確認後、セルの値を変更してヘッダ情報を書き換えられるように、ソース<1>の3行はコメントにして下さい。(行頭に、' をつける)*With Sheets("シート名")・・・・・・・・・・・・・・・・・TextToDisplay:=.Cells(n, 20).Value'------------------------------------追加開始' 現在のヘッダ情報をセルに反映 <1> ' [シート名]シートの各セルからヘッダ情報を変更した場合は' 必ずこちらの3行はコメント化しておくこと。.Cells(n, 21) = Sheets(i).PageSetup.LeftHeader .Cells(n, 22) = Sheets(i).PageSetup.CenterHeader.Cells(n, 23) = Sheets(i).PageSetup.RightHeader ' 各セルの入力値をヘッダに設定 <2>Sheets(i).PageSetup.LeftHeader = .Cells(n, 21) Sheets(i).PageSetup.CenterHeader = .Cells(n, 22)Sheets(i).PageSetup.RightHeader = .Cells(n, 23)'------------------------------------追加終了End With・・・・・・・・・・・・・・・・・

〜たった二ヶ月で視力が回復〜視力回復のプロが教える!!視力アップ成功の秘訣

黒板の字が見にくかった多くの子供たちが、今でははっきり見えるようになっています。
是非大人の方も実践していただきたく思います。きっと期待以上の効果を得られることでしょう。 このE−ブックが皆さんの悩みのからの開放の一助になれればと心から願っております。

質問日時:2010/03/09 18:07:09  解決日時:2010/03/10 09:26:56  その他の回答:2
トップ > コンピュータテクノロジープログラミングVisual Basic

エクセル2003のマクロを2007で使う方法もしくは部分選択コピーで、セルの幅などまったく一緒にコピー&...

エクセル2003のマクロを2007で使う方法もしくは部分選択コピーで、セルの幅などまったく一緒にコピー&ペースト出来る方法を教えてください。エクセル2003で以下のようなマクロを作りました。Sheets("請求書").Select Sheets("請求書").Copy ActiveSheet.Shapes("AutoShape 4").Select ActiveSheet.Shapes.Range(Array("AutoShape 4", "Group 1")).Select ★ Selection.Delete Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Columns("AK:BH").Select Selection.Delete Shift:=xlToLeft Range("A1").Select式の入った請求書フォームを送信用に値の貼り付けをするものだったと思います。2003の時にシートコピー(全選択)をして値を張り付けしまったく同じものの式が入っていないものを作っておりました。ですが2007になってから、行数(列数)が増えてしまったためにエラーになっているようです。(★のところでマクロが止まってしまいます)何か良い方法はありますか?宜しくお願いします。

【ベストアンサー】

hana_choco87さん、こんばんは上記マクロを自分のPC(Excel2007)で確認してみた所エラーになりませんでした。(行数は増えましたが、上記の式で行数自体取り扱っていないので_別の所に要因があるのではないかと思います。)1.★の所を見ると、2つの図形を選択していますが、該当する図形は____あるのでしょうか。数的に一致していても、引数に図形の名前を指定____していますので、その名前の図形がない場合、エラーになります。上記1で解決しない場合は、お手数ですがどんなエラーメッセージが表示されたのでしょうか。補足にて追記お願いします。

喫煙からの脱出

■あなたを1週間で禁煙させる7つの奇跡■
15日間で700名を禁煙させたノウハウ
禁煙は精神力でするから出来ない!!メールを通して1000名に禁煙指導をした40男が700名の禁煙成功者を出した自らの体験と専門家のアドバイスで出来上がった禁煙ノウハウBOOK

質問日時:2010/03/09 15:47:54  解決日時:2010/03/10 11:47:17  その他の回答:3
トップ > コンピュータテクノロジープログラミングVisual Basic

VisualBasic2008を使ってExcel2003を制御するプログラムを作っています。具体的には、特定のセル範囲に...

VisualBasic2008を使ってExcel2003を制御するプログラムを作っています。具体的には、特定のセル範囲に対して「セルの書式設定」−「配置」で「文字の位置」のところを「横位置」を中央、「縦位置」を下詰めにしたいと思っています。Excelでマクロを作って確認してみたところ、Range("B2:G17").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End Withとなりました。これをVisualBasic2008で表現したいのですが、どのようにすればよいのでしょうか。特に「HorizontalAlignment」と「xlCenter」、「VerticalAlignment」と「xlBottom」の部分をどうコーディングすればよいのかわからないのですが、ご存知の方教えていただけないでしょうか。作成中のプログラムを一部抜粋したのが以下になります。コメントで「特定のセル範囲を選択して、セルの書式設定」のところに挿入したいとおもっています。 'Excel起動 oXls = New Microsoft.Office.Interop.Excel.Application() oXls.Visible = True wdXls = oXls.Workbooks.Open("C:\\test\\test.xls")'特定のセル範囲を選択して、セルの書式設定'保存wdXls.SaveAs(Filename:=hozon)wdXls.Close() 'メモリ開放 System.Runtime.InteropServices.Marshal.ReleaseComObject(wdXls) wdXls = Nothing 'Excel終了 oXls.Quit() 'メモリ開放 System.Runtime.InteropServices.Marshal.ReleaseComObject(oXls) oXls = Nothing何卒よろしくお願いします。

【ベストアンサー】

VBA ではなくて、VB2008 から PIA を使ったアクセスですよね。でしたら、Constants 列挙型に定義されている値を使う方がよいです。http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel.constants(office.11).aspxConstants.xlCenter とか Constants.xlBottom とか。また、本題とは異なりますが、oXls.Workbooks.Open("C:\\test\\test.xls")ここで、Workbooks の暗黙の参照が残ってしまいます。Workbooks も変数に入れて ReleaseComObject してあげてください。

家族葬なら

質問日時:2010/03/08 17:30:10  解決日時:2010/03/08 18:46:35  その他の回答:1
トップ > エンターテインメントと趣味芸能人、タレントアイドル

東方神起BEST SELECTIONのDVD【LIVE DIGEST】について★7曲目のHUGのステージは1st.TOURの映像ですか?白...

東方神起BEST SELECTIONのDVD【LIVE DIGEST】について★7曲目のHUGのステージは1st.TOURの映像ですか?白T.デニムパンツの衣装でユチョンが※茶髪パーマ※のやつです!!

【ベストアンサー】

1st.TOURの映像ですよ。 カワイイですよね!

10日間で痔が治った奇跡のデトックス療法

ヨガ行者直伝のデトックス療法で誰にも知られず痔を治す方法のマニュアルです。 一日、最低約1時間のエキササイズを最長でも2週間続けることにより、痔が完全に治癒します。再発はありません。 これは著者、および知人によって体験的に実証済みです。

質問日時:2010/03/08 15:53:31  解決日時:2010/03/08 17:20:26  その他の回答:1
トップ > コンピュータテクノロジープログラミングVisual Basic

エクセルのシート名一欄(リンク付き)で一欄にしたくないシートがあるのですがいつもお世話になっており...

エクセルのシート名一欄(リンク付き)で一欄にしたくないシートがあるのですがいつもお世話になっております。また御指南ねがいます。以下のコードでシートの一欄をハイパーリンク付きで作成しているます。非表示にしているシートは一欄に記載したくないのですが、どのようにしたらよいのでしょうか?(現状だと非表示にしているシートも一欄に記載されてしまいます。)ちなみに非表示にしているシートは例としてですが、下記です。◎◎△△■■'----------------------------------Sub シート名読込() Columns("T:T").Select Selection.ClearContents Dim i As Long For i = 2 To Sheets.Count With Sheets("シート一欄") .Cells(i + 2, 20) = Sheets(i).Name .Hyperlinks.Add Anchor:=.Cells(i + 2, 20), _ Address:="", _ SubAddress:="'" & Sheets(i).Name & "'" & "!G3", _ TextToDisplay:=.Cells(i + 2, 20).Value End With Next i Sheets("写真台帳作成").Range("t3") = "シート名一覧" ActiveWorkbook.Names.Add Name:=ActiveSheet.Name, _ RefersToR1C1:="=" & ActiveSheet.Name & "!R1C1" Columns("T:T").Select With Selection.Font .Name = "MS Pゴシック" .Size = 12 End WithEnd Sub

【ベストアンサー】

追加・変更部分のみです。お試しください。n = 4'追加For i = 2 To Sheets.CountIf Sheets(i).Visible = True Then'追加With Sheets("シート一欄").Cells(n, 20) = Sheets(i).Name'変更.Hyperlinks.Add Anchor:=.Cells(n, 20), _'変更Address:="", _SubAddress:="'" & Sheets(i).Name & "'" & "!G3", _TextToDisplay:=.Cells(n, 20).Value'変更End Withn = n + 1'追加End If'追加Next i

福岡 賃貸なら