Excel VBA質問スレ Part9at TECH
Excel VBA質問スレ Part9 - 暇つぶし2ch900:デフォルトの名無しさん
09/02/14 18:17:39
>>898
ありがとうございます。
option explicitってオプションで「変数の宣言を強制する」って奴と関係してるものですかね?
ちょっと調べてみますが、この設定のせいだったんですね。
別の本だと「変数の宣言を~」って設定を推奨してたので
チェックしてました。

901:デフォルトの名無しさん
09/02/14 18:19:30
option explicit無しがデフォルト設定じゃなかったっけ?

902:デフォルトの名無しさん
09/02/14 19:17:07
変数の宣言は強制しておけ。
ついでに、きちんと型の概念を持っておくと良いよ。

ただのお遊びマクロで終わるか、仕事で使えるプログラムになるかはそこが大きい。
型を理解してない奴は、ほぼ100%お遊びマクロ。

903:デフォルトの名無しさん
09/02/14 19:21:32
javascriptもお遊びですね

904:名無しという名無し
09/02/14 19:21:39
質問なんですけど
ExcelってXLSのことなんですか?
だとしたらここで質問したいんですけど
間違ってたらいってください

今、Excel viewer2003で
XLSのファイルを見ようとしてるんですけど
「コマンドラインオプションの構文エラーです
 Command /?を入力するとヘルプが表示できます」
とか出てきて訳わかんないんですけど詳しい人がいたら教えてください。
お願いします。
(一応、ググって見ましたが、僕の見る限りなかったと思います)

905:名無しという名無し
09/02/14 19:24:16
すみません上のやつ
書くとこミスりました
すいませんがスルーでお願いします
本当にすいませんでした

906:デフォルトの名無しさん
09/02/14 21:22:21
すいません。質問なんですが、

Sub test()
Range("Q2").Select
Do Until ActiveCell.Offset(0, -1).Range("A1") = ""
ActiveCell.FormulaR1C1 = "=SUM(RC[-15]:RC[-1])"
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
End Sub

このコードの、Do Until の条件式は、「アクティブセルの一つ左のセルが空白である」っていう意味であってるんでしょうか?
だとすると、「Offset(0,-1).」の後の「Range("A1")」にはどんな意味があるのでしょうか?
同様に5行目の「ActiveCell.Offset(1, 0).」の後の「Range("A1")」の意味がよく分かりません。
この「Range("A1")」が無いと正しく動作しないのでしょうか?

907:デフォルトの名無しさん
09/02/14 21:26:41
何で自分で調べないの?

908:デフォルトの名無しさん
09/02/14 21:29:02
調べたんですけど分からなかったです。スマンコ

909:デフォルトの名無しさん
09/02/14 21:55:56
>>908
Offset()もRange()もRange型オブジェクトを返す。両者の違いは、
Offset()はマイナスを指定できる。相対指定しかできない。1つのセルしか指定できない。
Range()はマイナス(左、または上)を指定できない。相対指定も絶対指定も可能。複数セルからなる領域を指すことが可能。
両者を組み合わせればあらゆる矩形領域を相対的に示すことが出来る。

この場合に限って言えば、Range("A1")は単なる無駄。
わざわざ無駄な式を書くには理由があるはず。あとで別の例題で書き換えて使うんでねーの?

910:デフォルトの名無しさん
09/02/14 22:23:26
調べてない奴の台詞。> 調べたんですけど分からなかったです。

911:デフォルトの名無しさん
09/02/14 22:29:07
>>909
なるほど!
調べたけど分からなかったことが分かりました!
ありがとうございます!

912:デフォルトの名無しさん
09/02/14 22:50:20
┐(´ー`)┌

913:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/14 23:12:30
マルチすんな

915:デフォルトの名無しさん
09/02/15 01:10:16
定数戦隊
vbRed
vbBlue
vbGreen
vbYellow
vbPink

敵か味方か、謎の戦士
vbBlack

916:デフォルトの名無しさん
09/02/15 22:38:43
エクセルで、全シートに同様の処理を反映させたいのですが

Worksheets.Select

For 行番号 = 2 To 10
.Cells(行番号, 列合計).Value = _
.Cells(行番号, 列数量).Value * Cells(行番号, 列単価).Value

Next 行番号

と書くと「.cellsが不正」と言われます。
どのあたりがおかしいのでしょうか。

917:デフォルトの名無しさん
09/02/15 23:04:53
with で囲んでないのに、何でピリオドから始まってるの?


918:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/16 14:20:01
>>918
マクロの記録してから質問しろ

920:デフォルトの名無しさん
09/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



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch