Excel VBA質問スレ Part13at TECH
Excel VBA質問スレ Part13 - 暇つぶし2ch724:デフォルトの名無しさん
09/11/23 16:31:36
>>720
For-Next使う必要ないじゃん

For i = 1 To 3
Next i
Range("E5").Value = "H線"
Range("E6").Value = "L線"
Range("E7").Value = "中心線"

725:デフォルトの名無しさん
09/11/23 17:07:02
>>723
配列無しで出来る?
俺には思いつかなかった

726:デフォルトの名無しさん
09/11/23 17:21:26
>>724よく見たら笑えるww三回回ってワン

あれは配列のお勉強だったんじゃね?

727:デフォルトの名無しさん
09/11/23 17:32:17
For i = 1 to 3
Cells(5,i + 4) = Iif(i=1,"H線",Iif(i=2,"L線","中心線"))
next i

配列思いつかなくてもできるじゃん不気味で自分はこんなの書きたくないけど。

728:デフォルトの名無しさん
09/11/23 18:01:59
なんでループにすんの?

729:デフォルトの名無しさん
09/11/23 19:07:59
これはどうですか
For i = 1 To 3
Cells(5, i + 4) = Choose(i, "H線", "L線", "中心線")
Next i

730:デフォルトの名無しさん
09/11/23 19:14:19
x = Array("H", "L", "中心")
For i = 1 To 3
Cells(5, i + 4) = x(i - 1) &"線"
Next i

731:デフォルトの名無しさん
09/11/23 19:17:41
vbaにもchoose関数あるの初めて知ったわw

732:デフォルトの名無しさん
09/11/23 19:29:47
同じく、知らんかった。へ~。。。

733:デフォルトの名無しさん
09/11/23 20:05:46
x = Array("H", "L", "中心")
ReDim y(1 to 1 , 1 to 3 )

For i = 1 To 3
y(1 , i)=x(i - 1) &"線"
Next i

Range("E5:E7")=y


もしもしからなので動くかどうかはしらね

734:デフォルトの名無しさん
09/11/23 21:37:37
>>724
お前>>718だろ?w

735:デフォルトの名無しさん
09/11/23 21:44:02
>>720
>>529流に書くとこうだな。
For i = 1 To 3
Next
Range("E6:E8").Value=WorksheetFunction.Transpose(Split("H線 L線 中心線"))

下が普通だが。
For i = 1 To 3
Next
Range("E6:E8").Value=WorksheetFunction.Transpose(Array("H線","L線","中心線"))

736:デフォルトの名無しさん
09/11/23 21:53:08
おまいらForがかわいそうとかNextが不憫とか思わんの?

737:デフォルトの名無しさん
09/11/23 21:58:09
>>721の一部修正
x = Array("H線", "L線", "中心線")
For i = 1 To 3
Range("E5").Cells(1, i).Value = x(i - 1)
Next i


738:デフォルトの名無しさん
09/11/23 22:02:05
なんだChooseがVBAで使えるのかよ。
俺も知らんかったわ。

739:デフォルトの名無しさん
09/11/23 22:11:42
何もないのに回っているFor-Nextを思うと萌える

740:デフォルトの名無しさん
09/11/23 22:25:43
For i = 1 To 3
Next i
Range("E6:E8").Value = [{"H線";"L線";"中心線"}]

741:デフォルトの名無しさん
09/11/23 22:28:06
Evaluateか、なるほどそれもあるな。

742:デフォルトの名無しさん
09/11/23 22:28:09
Sub 萌()
Do
Loop
Exit Sub

743:デフォルトの名無しさん
09/11/23 22:33:23
>>739
何もなくても行数を稼ぐのが昔はプロの技と言われたもんだぜ

744:デフォルトの名無しさん
09/11/23 22:35:06
ボッタクリの末路は...

745:デフォルトの名無しさん
09/11/23 22:43:56
>>742
無限ループって怖くね?
スレリンク(prog板)

746:デフォルトの名無しさん
09/11/24 00:22:51
  i = 1
Loop1:
  If i > 3 Then GoTo Loop1_End
  Select Case i
    Case 1: Cells(5, 5).Value = "H線"
    Case 2: Cells(5, 6).Value = "L線"
    Case 3: Cells(5, 7).Value = "中心線"
  End Select
  i = i + 1
  GoTo Loop1
Loop1_End:

747:デフォルトの名無しさん
09/11/26 14:22:47
Ruby 1.9 And Rails 3.0
URLリンク(www.slideshare.net)

748:デフォルトの名無しさん
09/11/26 15:55:58
>>745
ずーっと萌え続けるからいいんじゃね

749:デフォルトの名無しさん
09/11/26 17:09:50
URLリンク(www.nikkei.co.jp)

750:デフォルトの名無しさん
09/11/26 17:39:38
まったくズブの素人です。
これからブイバ初めても間に合いますか?
プログライミングをでけるようになりたいから
手始めにVBAから勉強するのか迷い中です。
何か時代は.NETでブイビーも.NET
それじゃ~ブイバももう手遅れなんでしょうか?

751:デフォルトの名無しさん
09/11/26 17:47:16
373 デフォルトの名無しさん [] 2009/11/26(木) 17:41:52 ID: Be:
パイソンって強そうな名前ですが、本当につおいのですか?
でもちょっとHでもありますが。。

752:デフォルトの名無しさん
09/11/26 18:39:28

暇人


753:デフォルトの名無しさん
09/11/26 19:17:14
>>750

プログラミング云々以前に日本語を正しく書けるようにしろよ
「プログライミング」とか「ブイバ」とかさ、、、w

それに間に合うとか間に合わないかとかの問題じゃないと思うよ。
Excelでやらせたい事があるんだったらVBAだろうし。


754:デフォルトの名無しさん
09/11/26 20:41:09
>>753
あっプログラミングの間違い、頭ではプログラミングつって
書いた覚えなんだけんど。
そんでブイバって読むんとちゃうんかいな。長いでど
ブイビーエーとでも言うんですか?
田舎もので素人だもんで、そげんこつも誰も教えてくれんから、
愛嬌ということで。。

755:デフォルトの名無しさん
09/11/26 20:49:00
972 デフォルトの名無しさん [sage] Date:2009/11/23(月) 17:09:32  ID: Be:
    ID強制になるだけで静かになるよ

973 デフォルトの名無しさん [] Date:2009/11/23(月) 18:02:02  ID: Be:
    その変更はキミに任せるから提案してくれ。

974 デフォルトの名無しさん [] Date:2009/11/23(月) 18:18:58  ID: Be:
    反対するのは荒らしたい奴だけだから強行しちゃって良いよ

756:デフォルトの名無しさん
09/11/26 21:23:18
↓うーんセフセフのAA

757:デフォルトの名無しさん
09/11/27 21:27:13
↑そのAA持ってないんですいませんがw

Excel2007
テキストボックスについてですが。
MultiLineをtrueに、ScrollBarsをfmScrollBarsBoth
にセットして、データの表示(更新)用に使っています。

表示する時にマウスのホイールボタンでスクロール出来るようには
出来ないのでしょうか?



758:デフォルトの名無しさん
09/11/28 01:08:03
yes we can

759:720
09/11/28 11:55:34
EXCEL 2007

こんにちは

マクロを使い、オートフィルで連続データを作成しているのですが、
書式もオートフィルされてしまい困っています。

値だけをオートフィル(連続データ)するやり方があればご教授ください。
宜しくお願いします。




760:デフォルトの名無しさん
09/11/28 12:12:04
.value

761:デフォルトの名無しさん
09/11/28 12:18:21
マクロの記録でやってんのかな
試したけど無理っぽいから、あきらめてきちんとコードを組む

762:デフォルトの名無しさん
09/11/28 12:40:59
構文 Object.AutoFill(Destination, Type)

設定項目 内容
Object Rangeオブジェクトを指定
Destination オートフィルの書き込み先のRangeオブジェクトを指定
Type 入力されるデータの種類を指定。XlAutoFillクラスの定数を指定

XlAutoFillクラスの定数
・xlFillDefault:標準のオートフィル
・xlFillSeries:連続データ
・xlFillCopy:コピー
・xlFillFormats:書式のみコピー
・xlFillVaules:書式なしコピー
・xlFillYears:年単位
・xlFillMonths:月単位
・xlFillDays:日単位
・xlFillWeekdays:週日単位
・xlLinearTrend:加算
・xlGrowthTrend:乗算


763:デフォルトの名無しさん
09/11/28 13:02:02
でも書式コピー梨、連続(加算)は出来ないっぽいよ

764:デフォルトの名無しさん
09/11/28 16:03:46
たぶんそうだよねー
オートフィルもExcelマクロっぽくて悪くないと思うから
とりあえずオートフィルして書式は別に直すとか

765:デフォルトの名無しさん
09/11/28 18:56:46
質問です。
Excel VBAからワードや他のエクセルファイルの操作ってできますか?
やりたいこととしては、VBAを仕込んだxlsファイルに、
置換したい文章を記述し(置換前と置換後をシート内に記述)、
指定したフォルダ内(サブ含む)にあるエクセルファイルやワードファイルに
書かれている文章を変換したいのです。

その際、「この文章を変換しました」みたいなログも出せたら最高なのですが、
いい方法ってありますか?

766:デフォルトの名無しさん
09/11/28 18:58:00
yes we can

767:デフォルトの名無しさん
09/11/28 19:10:59
>>765
VBAから他のファイルを操作できる

ログは画面にだすならmsgboxでいいでしょ
フィルに書き出したいならテキストファイルでもオープンして書き出せばよい

768:759
09/11/28 20:18:10
>>761>>763>>764
ご回答、ありがとうございます。

やはりむりですか・・・
オートフィル以外でいくつかつくったのですが、スピードを重視したくオートフィルにこだわっていました。
やりたいことは、A1の値を基にB1:B100までA2で指定された増分値に沿った降順連続データをつくりたかったのです。
考えついたものを下記に貼りますので、改善点やより良いコードがありましたらご教授ください。
宜しくお願いします。

Sub test1()
基準値 = Cells(1, 1).Value
増分値 = Cells(2, 1).Value
For i = 0 To 99
Cells(1 + i, 2).Value = 基準値
基準値 = 基準値 - 増分値
Next i
End Sub

Sub test2()
基準値 = Cells(1, 1).Value
増分値 = Cells(2, 1).Value
For i = 0 To 99
Cells(1 + i, 2).Value = 基準値 - i * 増分値
Next i
End Sub

Sub test3()
増分値 = Cells(2, 1).Value
For i = 1 To 100
Cells(i, 2).Value = WorksheetFunction.Sum(Cells(1, 1).Value, Cells(2, 1).Value - i * 増分値)
Next i
End Sub

769:デフォルトの名無しさん
09/11/28 20:28:08
>>767
具体的にはどのようにするんでしょう・・・<ファイル操作
また、AAAという単語はヒットしたので置換したけど、
BBBという単語がない場合、AAAだけ置換したよ、というログとかも取れますか?

770:デフォルトの名無しさん
09/11/28 21:01:43
Excel VBA WEB連携術って本みつけたんだけど誰かレビューしてくれませんか?

ちなみにieを使ったシステムへの自動化を考えてます。
それの助けになるか聞きたいです。

771:デフォルトの名無しさん
09/11/28 21:08:53
>>770
おし引き受けた!


レビュー:
読んだことないけど多分読まないよりましじゃね?

772:デフォルトの名無しさん
09/11/28 23:39:43
>>770
何をやりたいのかもうちょっと詳しく

自動化って言えば聞こえはいいけど、よくよく話を聞いてみると
たいていは株とかFXとかで楽して儲けたいだけみたいなのが多い

773:デフォルトの名無しさん
09/11/28 23:44:31
>>769
例えば、マクロ記録で目的のファイルを開いて、できたブックからシートを自分のシートに移動する
で、移動してきたシートをコピーしといて、どちらか一方を置換する
あとは置換後に双方を比較して、違う部分を表示するとか

他にも方法は山ほどある
まずは自分でアウトラインを固めて、ポイントを絞って質問してくれないと回答しようが無い

774:デフォルトの名無しさん
09/11/28 23:45:54
>>772
まぁ株なりFXの自動売買だろ
そして、この程度も自分で調べてできない人間はロクなシステム組めないに1000ガバス


775:デフォルトの名無しさん
09/11/28 23:57:41
>>773
すいません、大雑把にしか書いてなかったので答えることもできなかったですねorz
仕様としてはこんな感じです。

VBAを記述したExcelに、置換前・置換後を記述したの置換リストをシートとして作成しておきます。
[VBA記述xlsファイル上の置換リスト]
置換前 | 置換後
------------------
ABC   | XYZ
log-in  | log in
login   | log in

そのシート上にフォルダを指定するセルを用意し、ボタンを押す(マクロ実行)ことで、
指定されたフォルダ(サブフォルダ含む)にあるxlsファイル、docファイルを参照。

ヒットしたファイルの中に、置換リストの置換前と同じ文章があった場合、
ログとして「(ファイル名)▲▲を●●に置換」のような情報を出力し、置換を行います。

うまく纏まっていないかもしれないですが、このような仕様でつくりたいと思っています。
ググってみた感じ、ワードファイルの文章置換を行うロジックはあったのですが、
「本当に置換を行ったか」が取得できなさそうな感じがして・・・。
(▲▲があれば●●に置換する、という処理なので、▲▲がなくても変換せずに処理が終わるはず。変換したか?という状態が取れない感じが)


776:デフォルトの名無しさん
09/11/29 00:06:24
このスレはプログラマにとっては有益なスレで
クレクレ君には無益なスレです
テンプレ参照

777:デフォルトの名無しさん
09/11/29 01:18:29
プログラマにとっては有益 ← ここ、笑うところ?

778:デフォルトの名無しさん
09/11/29 01:22:35
ゆとりには笑うとこまで指示してやらんと

779:デフォルトの名無しさん
09/11/29 02:30:54
OSはXP
バージョンは2002です。


単刀直入に聞きます
「ユーザーフォーム上に設置したスプレッドシート」

これをエクセルのシートのように読み込む(ActiveSheet.Range(Cells(1, 1)~のような書式)ことは可能でしょうか?

780:デフォルトの名無しさん
09/11/29 10:31:56
>>779
可能

781:デフォルトの名無しさん
09/11/29 14:03:26
vistaを使ってると、IE7がプリインストールしてあるためにウェブクエリ取得やIEの操作などが正常に作動しないことがあります。
そこで、windows7にはXPモードがあると聞きました。そのXPモードで使われるIEがバージョン6なのかが気になっています。
IE6を使えるなら早めにwindows7搭載のPCに買い替えるつもりです。どうかお教えください。

782:デフォルトの名無しさん
09/11/29 14:41:08
IE6を使える

783:デフォルトの名無しさん
09/11/29 14:46:46
まずIEはバージョン6

注意事項としてXP Modeは Windows 7 Professional 以降で搭載される。
一般のメーカー製 Windows 7 プレインストールPCはほとんどが Home Premium でXP Modeは搭載されてないので注意

あと、XP Modeといっても特に他アプリと連携するような場合には
正常に動作するか分からないのでできれば事前にどこかで確認してみることをすすめる
おそらく統合機能ってのを使わなければ、ほぼ問題ないとは思うけど、統合機能使わないと XP Mode の利点はあまりないと思うし

784:デフォルトの名無しさん
09/11/29 15:05:34
バーチャルPC使えよ

785:781
09/11/29 17:48:41
やはりMSなりに問い合わせたほうが無難なのですね。
バーチャルPCについて調べてみましたが、これならvistaでもxpを動かせるのですね。インストールして試してみます。
ありがとうございました。

786:デフォルトの名無しさん
09/11/30 15:26:51
Excelの関数の質問なのですが
入力した数字が6~10のとき○、11~15のとき◎

   A  B
1  6  ○
2  11 ◎

という風に○や◎を表示させたいのですが、関数がどうしてもわかりません。
どなたかよろしくお願いいたします。

787:デフォルトの名無しさん
09/11/30 15:33:26
VBAと関係ないね

788:デフォルトの名無しさん
09/11/30 15:52:52
すみません、間違えました。

789:デフォルトの名無しさん
09/11/30 19:19:49
Function Maru(n)
  Maru = ""
  If (6 <= n) And (n <= 10) Then Maru = "○"
  If (11 <= n) And (n <= 15) Then Maru = "◎"
End Function

790:デフォルトの名無しさん
09/11/30 22:39:34
リストボックスで数値の項目を右詰めにしたいんですが、どうすればよいでしょうか?
2007です。


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