1 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 15:42:51 ] ExcelのVBAに関する質問スレです 前スレ pc11.2ch.net/test/read.cgi/tech/1219673793/ ★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。 ★2 ExcelのVBA以外の部分に関する質問はNGです。 但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。 ★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。 VBAとは、『Visual Basic for Application』の略で Application ├Workbooks |└Workbook | ├Worksheets | |└Worksheet というApplication以下のオブジェクトを、VB言語で操作するものを指します。 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。 ★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。 ★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。 ★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
908 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 21:29:02 ] 調べたんですけど分からなかったです。スマンコ
909 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 21:55:56 ] >>908 Offset()もRange()もRange型オブジェクトを返す。両者の違いは、 Offset()はマイナスを指定できる。相対指定しかできない。1つのセルしか指定できない。 Range()はマイナス(左、または上)を指定できない。相対指定も絶対指定も可能。複数セルからなる領域を指すことが可能。 両者を組み合わせればあらゆる矩形領域を相対的に示すことが出来る。 この場合に限って言えば、Range("A1")は単なる無駄。 わざわざ無駄な式を書くには理由があるはず。あとで別の例題で書き換えて使うんでねーの?
910 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 22:23:26 ] 調べてない奴の台詞。> 調べたんですけど分からなかったです。
911 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 22:29:07 ] >>909 なるほど! 調べたけど分からなかったことが分かりました! ありがとうございます!
912 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 22:50:20 ] ┐(´ー`)┌
913 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 22:59:06 ] グラフ範囲 =Sheet1!$O$3:$T$3,Sheet1!$O$5:$T$269 をマクロで実行するためにはどうすればいいですか? myC = Range("L2") ActiveChart.SetSourceData Source:=Sheets("Sheet1") .Range("$O$3:$T$3", "$O$5:$T$ & myC") , PlotBy:= _ xlColumns で動きません。 よろしくお願いします。
914 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:12:30 ] マルチすんな
915 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 01:10:16 ] 定数戦隊 vbRed vbBlue vbGreen vbYellow vbPink 敵か味方か、謎の戦士 vbBlack
916 名前:デフォルトの名無しさん [2009/02/15(日) 22:38:43 ] エクセルで、全シートに同様の処理を反映させたいのですが Worksheets.Select For 行番号 = 2 To 10 .Cells(行番号, 列合計).Value = _ .Cells(行番号, 列数量).Value * Cells(行番号, 列単価).Value Next 行番号 と書くと「.cellsが不正」と言われます。 どのあたりがおかしいのでしょうか。
917 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:04:53 ] with で囲んでないのに、何でピリオドから始まってるの?
918 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:53:54 ] 質問させてください 以下の様な入力があった際に A列は(A,1)だけ文字色を黒に、それ以下はすべて指定色に変更 B列は(B,1)が文字色黒、(B,2)(B,3)が指定色 (B,4)が文字色黒、(B,5)(B,6)(B,7)が指定色 になるようにしたいのですが、どのように実装すれば良いのでしょうか A B C ore kimi warota ore kimi warota ore kimi warota ore dare warota ore dare warota ore dare warota ore dare warota
919 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 14:20:01 ] >>918 マクロの記録してから質問しろ
920 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 14:40:30 ] なんか色々アレしてたら突破口が出来ました スレ汚し失礼しました。 JavaとかCを軽くやっただけだったので 喜んで引き受けたんですが スコープは分かりにくいし、なんか予約語?っぽいのがもうわかんなくて。。。 ま、すいませんでした、自力でなんとかしまウィッシュ '2行目から終端までループしましょう For i = 2 To LAST_ROW 'テーマが全項目と同じか調べる '次の行のテーマを変数に入れときます THEME_NEW = Worksheets("Sheet1").Range("A" & i).Value '前の行と現在参照している行が異なる場合 If THEME_NEW <> THEME_OLD Then Worksheets("Sheet1").Range("A" & i).Font.colorIndex = 3 Else Worksheets("Sheet1").Range("A" & i).Font.colorIndex = 1 End If THEME_OLD = THEME_NEW Next