[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 09:57 / Filesize : 123 KB / Number-of Response : 389
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

●EXCEL・VBAの教えてスレ Part2●



1 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 11:14:15 ]
・まじめにExcelの機能を追及してみようと思う奇特なひと
・スキルがないのに無理やりVBAの仕事を押し付けられた普通のひと
・VBAなんていまさらやりたくないのに業務で仕方なく使っているひと
・とにかく漏れにこんな仕事まわすなと怒っているひと
そんなM$大好きなひとからアンチM$なひとたちまで幅広くカバーするスレです

OOoのCalcの質問もOKです

前スレ
pc10.2ch.net/test/read.cgi/tech/1054356121/


337 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 15:49:59 ]
> どうしてでしょうか?
環境が壊れてるからじゃねーの?
とりあえずOSとOfficeを再インストールしてみな。

それとGetOpenFilenameはApplicationオブジェクトのメンバなんで参照設定は不要だし、
Microsoft Runtime Scriptingではなく
Microsoft Scripting Runtimeだろ。これはFSOやDictionaryだからな。

338 名前:デフォルトの名無しさん [2007/02/22(木) 15:30:03 ]
  row = 1
For Each a In IEobj.Document.body.getElementsByTagName("A")
If InStr(a.href, "xxx.com/") <> 0 Then
x = a.href
Worksheets(1).Cells(row, 1).Value = x
row = row + 1
End If
Next a
こんな感じのURLなのですが、同じアドレスは二度書き込まない風にできますか?

339 名前:338 [2007/02/22(木) 18:01:47 ]
処理重くなるだけかな
少しぐらい重なってもいいか・・・・

340 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 19:58:29 ]
>>338
普通に重複チェックして条件分岐すれば良いだけでしょ。
重複チェックにはいろんな手法があるのでお好きなもので。

341 名前:デフォルトの名無しさん [2007/02/23(金) 22:15:30 ]
Dim myValue As Single
myValue = 1.0
Charts(1).Name = "Ver. " & myValue

としてエクセルのグラフのタイトルに、 Ver. 1.0 と入力したいのですが、Ver. 1 となります。
こういう場合は、どうすれば "1" を "1.0" と少数点付きにできますか?

342 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 22:27:30 ]
As String にするか
"Ver." & Format(MyValue, "0.0")で

343 名前:デフォルトの名無しさん [2007/02/23(金) 22:52:10 ]
>>342
ありがとう!!!
できた〜!!!!!

ちなみにStringはダメでした。

ほんとにありがとう。

344 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 23:15:34 ]
ああ、"1.0"にしないと駄目だろうねw


345 名前:デフォルトの名無しさん [2007/02/24(土) 01:29:23 ]
Win2000 SP4ではちゃんと動いていたのにXP SP2に持っていったらエラーにはならないんですけどまともに動いてくれません
主に使っている機能はActiveXのInetです。WEBを取り込んで検索して加工した文字列をエクセルに貼り付けてるだけです。

参照設定は正規表現というやつを使いたくて、MSVBScriptRegulerExpresion1.0と5.5を二つ入れました。
1.0と5.5は両方チェック入れたらまずいんでしょうか?本にはMSVBScriptを参照設定しろと書いてあっただけなので不明です。

あとMS Internet Transfer Control 6.0とMS Internet Controls も参照設定してあります。

Win2000 SP4はVB6.0、WinXP SP2はVB6.0ランタイムが入ってます。

最初から2行あったOption Explicit ?ともう一行は文の意味がわからなかったので消しました。

XPのファイアーウォールははずしてあります。

なぜXPだけで不安定になるのか原因わかりますでしょうか?



346 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 01:33:32 ]
うん、わかる

347 名前:デフォルトの名無しさん [2007/02/24(土) 01:37:51 ]
ありがとうございます。試してみます。

348 名前:デフォルトの名無しさん [2007/02/24(土) 14:27:41 ]
エラーの時にデバッグを選んだ後停止ボタンを押すと、フォームがひらくのですが、コード画面のままで維持できないのでしょうか?
その度にいちいちコード画面を選び編集したいコードの行を探さないといけないのはつらいです。

349 名前:デフォルトの名無しさん [2007/02/24(土) 15:09:31 ]
'初心者です。


Sub なんでだろう@()
Dim あ As Long
あ = Worksheets("Sheet1").Cells(1, 1)
If あ > 3 Then
Worksheets("Sheet1").Rows("1:5").Select
End If
End Sub

'だと動くのに

Sub なんでだろうA()
Dim あ As Long
あ = Worksheets("Sheet1").Cells(1, 1)
If あ > 3 Then
Worksheets("Sheet1").Rows("1:あ").Select
End If
End Sub

'だと動きません。なんでだろう。。。
'親切な方教えてください。


350 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 15:37:02 ]
range("1:" & あ)では?

351 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 15:48:27 ]
>>349
×Worksheets("Sheet1").Rows("1:あ").Select
○Worksheets("Sheet1").Rows("1:" & あ).Select
○Worksheets("Sheet1").Range("1:" & あ).Select
○Worksheets("Sheet1").Rows(1).Resize(あ).Select

>>350
このコードを書いているモジュールによってはシートを省略しちゃうと正しく動作しないよ。
「Worksheets("Sheet1")」も書くか、「Rows以降を」と添えよう。

352 名前:349 [2007/02/24(土) 15:49:50 ]
>>350
ほえ〜。動きました。
なぜだか分からないけど、とにかくこれでやってみます!
ありがとうございました!

353 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 16:05:06 ]
>>351
あ、RowsのつもりがRangeって打っちゃったよ

354 名前:349 [2007/02/24(土) 16:09:47 ]
>>351
とにかくいろいろやり方があるんですね!
どうもでした。m( )m

モジュールって何?っていう段階なので、すべてがサッパリ妖精なのですが、
とにかく理解もせずに突き進んでみることにして見ます。。。

355 名前:デフォルトの名無しさん [2007/02/24(土) 19:58:05 ]
エクセルのグラフの軸の書式設定にある
Y/数値軸目盛の最大値のところに初期入力してある値を取得する方法ってありませんか?



356 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:22:45 ]
初期値は自動じゃないのか?
まぁ、マクロ記録で変更してみりゃプロパティの名前がわかるだろ。

357 名前:デフォルトの名無しさん [2007/02/24(土) 20:35:27 ]
>>356
自動です。
自動で入る初期値がほしいんですが、これに関しては
マクロ記録でいろいろ試してみましがはわかりませんでした。

358 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:53:07 ]
>>357
初期値変更するの記録すればわかると思うけど
ActiveChart.Axes(xlValue).MaximumScale
じゃない?

359 名前:デフォルトの名無しさん [2007/02/24(土) 21:14:35 ]
>>358
ありがとうございます。
値の取得ができました。
初期値変更するの記録したつもりだったけど、わからなかったw

360 名前:デフォルトの名無しさん [2007/02/25(日) 14:25:00 ]
あぁ〜ん、ユーザーフォームがうまく作れないよぉ〜〜〜ん!!

参考書ばかりが増えていく…

361 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 14:29:14 ]
わざわざユーザーフォーム作る香具師って馬鹿じゃね?
プログラミング能力の無さをさらけ出してるだけだよ。

362 名前:デフォルトの名無しさん [2007/02/25(日) 16:08:29 ]
馬鹿が馬鹿を笑う、ここはそんなスレでつw

363 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 17:30:50 ]
>>361
kwsk

364 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:30:07 ]
ユーザーフォームを×ボタンをクリックして閉じるときに、
それと同時に上書き保存をしたいのですが
何か良い方法はありますか?

365 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:33:26 ]
>>364
UserForm_QueryCloseイベントに上書き保存のコードを書く




366 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 02:57:29 ]
動作しないユーザーフォームなら1分もかからずにちゃんと作れるよな。
これすらできないのは才能ないというかなんか根本的におかしい。

367 名前:デフォルトの名無しさん [2007/02/26(月) 04:05:54 ]
>>361
の言ってる意味は全然変わらんが

>>366
なら分かる

368 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 04:55:40 ]
じゃ、>361はこう訂正してみよう。
>わざわざユーザーフォーム作る香具師って馬鹿じゃね?
→ユーザーフォーム作るのに苦労する香具師って馬鹿じゃね?

369 名前:デフォルトの名無しさん [2007/02/26(月) 05:03:58 ]
>>368
納得した
ユーザーフォーム使う使わないは用途によるからな

370 名前:364 mailto:sage [2007/02/26(月) 10:09:54 ]
>>365
ありがとうございます!できました!
>>361
仕入・納品・在庫調べ等々、自分の仕事では
ユーザーフォームないと非常に入力がめんどくさいです。
なので自力で作成しました。
まあ、「市販のソフト買えよ!」と言われればそれまでですが。

371 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 10:34:35 ]
>>360がやろうとしてることと、>>361,>>366,>>368が指摘してることに遥かなる距離感を感じるのはなぜだろう。

>動作しないユーザーフォームなら

わざわざ動作しないフォームを作る暇人っているんだな。

372 名前:デフォルトの名無しさん [2007/02/26(月) 11:47:50 ]
>>370
まさかそれをアクセスでなくエクセルでやってるとか・・・

373 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 11:58:21 ]
Excelが伝票というケースもあるだろ。Accessの仕事しかやったことないのか

374 名前:デフォルトの名無しさん [2007/02/26(月) 20:15:30 ]
Cellの中に文字列があって、その文字列の長さを取得するにはどうすればいいか教えてください。
文字変数の長さの取得方法がわかりません。

375 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:27:35 ]
>>374
Len

文字変数の長さって何?



376 名前:デフォルトの名無しさん [2007/02/26(月) 20:40:36 ]
>>375
説明がまずかったですね
たとえば、
a As String
b As Integer

a = "ABC" または a = Range("A1").Valueとして、このA1セルに"ABC"が入っているとします。
それで、 b をこの a の中に入っている文字列の長さの値を入れたいわけです。この場合は3になるわけですが
どうすれば b = 3 とすることが出来るかがわかりません。


377 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:46:05 ]
>>376
答え書いてあるやん

378 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:55:51 ]
b = Len( a )

まあいろいろ期待どおりに動作しない場合も多いがね。
b = LenB(a )

内部がEUCなのでバイトカウントでも(ry

379 名前:デフォルトの名無しさん [2007/02/26(月) 20:55:59 ]
>>377
すいません。見落としていました。
>>375
ありがとう
はぁ、なんか疲れてるみたい・・・

380 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 21:02:18 ]
「文字列の長さ」を「文字変数の長さ」と言い換えたのは
意味があるのかと…思ったわけです。
深く考えすぎたか_| ̄|○

381 名前:デフォルトの名無しさん [2007/02/28(水) 15:39:38 ]
マルチすみません。
情報が少ないですが以下の現象で困っております。
環境 WindowsXP Excel2003

エクセルのVisual Basic Editorで社内作成のコントロール(VB6にて)
をはりつけ、その後エクセルを終了すると必ずメモリがReadに・・・
のエラーがでてしまい困っています。あと2時間ほどで調べないといけない
のですが。。。誰かご教授お願いします。

382 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 15:49:07 ]
> 社内作成のコントロール
の問題を聞かれても、どうにもならんわな。

聞きたいなら最低限そのコントロールのソースを晒せ。
それが出来ないなら自社内で解決しろ。

383 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 16:00:10 ]
社内掲示板で2ちゃんねる使ってるなんてユニークな会社ですねー

384 名前:デフォルトの名無しさん [2007/02/28(水) 17:21:49 ]
dim page as long
URL="http:xxx.com/&page="+cells(x,x)+"&main=
だとエラーは出ないんですが
URL="http:xxx.com/&page="+1+"&main=

URL="http:xxx.com/&page="+page+"&main=
だと型が一致しません13Errorとでるのですが、なぜでしょうか


385 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:27:54 ]
URL="http:xxx.com/&page=" & 1 & "&main="
URL="http:xxx.com/&page=" & page & "&main="




386 名前:デフォルトの名無しさん [2007/03/02(金) 02:08:55 ]
objIE.document.forms.Item(0).ID.Value = "ID"
objIE.document.forms.Item(0).PASS.Value = "PASS"
objIE.document.forms.Item(0).submit().Click
これで自動ログインさせたいのですが、ログインするこそはするんですが、
objIE.document.forms.Item(0).submit().Click
の行をデバックで過ぎると

オブジェクトが必要です。(Error 424)
と言うエラーが出てしまうのですが、なにか解決方法はありませんか

387 名前:デフォルトの名無しさん [2007/03/02(金) 02:12:50 ]
すみません、書き込んでから気づきました。().Clickが不要だったんですね('A`)
スレ汚しすみませんでした

388 名前:デフォルトの名無しさん [2007/03/02(金) 06:55:43 ]
毎日入力するデータを別シートに自動保存して
何日か溜まったら分析したいのですが

例)

3月2日に "Sheet1" の A10 〜 A20 に整数のデータを入力する

コマンドボタンをクリックすると
そのデータが "Sheet3" の 3月2日の列 ( AH10 〜 AH20 ) にコピーされる

翌日、3月3日に "Sheet1" の A10 〜 A20 に整数のデータを入力する

コマンドボタンをクリックすると
そのデータが "Sheet3" の 3月3日の列 ( AI10 〜 AI20 ) にコピーされる

また翌日・・・

という感じに、Sheet1の同じ範囲のデータをSheet3に、日にちごとにずらしてコピーしたいのですが
どうすれば良いのでしょうか?教えて下さい






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<123KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef