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


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

Excel VBA質問スレ Part13



1 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 12:25:04 ]
過去スレ
01 pc11.2ch.net/test/read.cgi/tech/1054356121/
02 pc11.2ch.net/test/read.cgi/tech/1168308855/
03 pc11.2ch.net/test/read.cgi/tech/1180192018/
04 pc11.2ch.net/test/read.cgi/tech/1189814602/
05 pc11.2ch.net/test/read.cgi/tech/1197448064/
06 pc11.2ch.net/test/read.cgi/tech/1205231499/
07 pc11.2ch.net/test/read.cgi/tech/1212587819/
08 pc11.2ch.net/test/read.cgi/tech/1219673793/
09 pc11.2ch.net/test/read.cgi/tech/1228372971/
10 pc12.2ch.net/test/read.cgi/tech/1235332603/
11 pc12.2ch.net/test/read.cgi/tech/1241885130/
12 pc12.2ch.net/test/read.cgi/tech/1247566074/

459 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 13:43:37 ]
>>454
手元にPCがないから確認できないけど、今ぱっと思いついた案が1つある。
セルに入力されている数式を取得し、文字列操作関数を使用し演算子の部分で区切る。
区切られた文字列を確認して全てにアルファベットが含まれていれば、セル参照あり、全く含まれていなければセル参照なし。
その他は混合。
どうでしょう?
文系のおいらの考えなので、バカかと思う方はたくさんいると思うけど。

460 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 13:46:03 ]
>>459だけど一部訂正。
「セル参照あり」→「セル参照のみ」だったよ。

461 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 15:08:03 ]
問題文を写し間違えただけだろ
Y=sinXとY=Xは3点で交わって、囲まれた領域は2つだ
片方だけ積分して倍すればいい

462 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 19:24:38 ]
>>459
0.100000000E+00

463 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 19:26:00 ]
>Y=sinXとY=Xは3点で交わって、囲まれた領域は2つだ

kwsk

464 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 20:36:00 ]
>>454
セル参照があるかないかだけですが
一つの案として下記なんかはどうでしょうか?

一部の関数を使用していると判定ミスしちゃいますが(DAYS360 とか)

With ActiveSheet.Cells(i, j)
  If (.Formula Like "=*[A-Z][1-9]*") Or (.Formula Like "=*[A-Z]$[1-9]*") Then
       'セル参照を含む数式
       .Interior.ColorIndex = 34
     Else
        'セル参照を含まない数式 又は 定数
        .Interior.ColorIndex = 40
  End If
End With

465 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:22:20 ]
>>462
最初に「=」が付いてるか確認すれば問題ないと思う。

466 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:22:36 ]
0.100000000E+00 +0.100000000E+00

467 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:27:46 ]
絶対に関数は使われていないのだろうか?



468 名前:デフォルトの名無しさん [2009/10/24(土) 22:36:56 ]
"=*[A-Z][1-9]*"や "=*[A-Z]$[1-9]*"って何を表してるんですか?

469 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:42:26 ]
性器

470 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:44:17 ]
>>467
そういう話になってくると正規表現?

471 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:17:41 ]
正規表現だと、
*[A-Z]$[1-9]*
の、文末一致or後方参照の $ が説明付かない。

472 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:45:26 ]
userformのtext1に入力された値を使うとき、
userform.text1と書くと思いますが、
text1、text2と順番に参照していきたい時、イメージとしては"text"&i のように変数で指定したいんですがエラーになってしまいます。
何かいい方法はないでしょうか?

473 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:25:10 ]
excel2003でOSはXPです。
ダブルクオーテーションマークが検索したい文章内にある場合どうすればいいのでしょうか。

具体的には
<IMG class="reslevel rf1 level2" alt="きこり レベル 2" src="img/x.gif">
というouterHTMLの文字列に一致したらdo while構文を抜け出すという形にしたいのです。

Do until objIE.document.all.outerHTML = "<IMG class="reslevel rf1 level2" alt="きこり レベル 2" src="img/x.gif">"
という形でダブルクオテーションで括ったのですが「コンパイルエラー」となってしまいます。
どうすれば回避できるか教えていただけないでしょうか。

474 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:25:54 ]
>>472
配列変数を使う(text1とtext2を配列変数に突っ込んで使う)

475 名前:464 mailto:sage [2009/10/25(日) 01:41:33 ]
>>471

>>464を書いたのは自分だけど
正規表現だと、 $は特殊な意味をもつの?
Like 演算子では特殊な意味をもつようにはHELPに
書かれていなかったんで

.Formula Like "=*[A-Z]$[1-9]* は
=$A$1 とか =A$1 という形式でのセル参照も判定させたいので
付けたんです

もしかして
.Formula Like "=*[A-Z][$][1-9]*"
って書いた方が正解なのかな?

476 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 02:00:43 ]
>>474
ありがとう

477 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 02:59:44 ]
>>475
msdn.microsoft.com/ja-jp/library/h5181w5w.aspx
少しは調べろよカス



478 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 08:59:51 ]
>>475
だから、正規表現じゃないって言ってるのだよ。

=$A$1 を判定させるマッチパターンは、
pattern = "=\$[A-Z]\$[0-9]"

479 名前:デフォルトの名無しさん [2009/10/25(日) 15:58:07 ]
色々教えてもらいここに辿り着きました

1つのフォルダーにあるいくつかのcsvファイルの全てのA列からC列のデータを削除したいのです

そういうvba作ってもらえませんか?
どうかお願いします

480 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 16:05:55 ]
>>479
>>2の★5を100万回読むんだ

481 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 16:06:04 ]
了解
待ってな

482 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 17:02:08 ]
>>479

いくらくれる?

483 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 22:05:39 ]
>>482
お金は…ないんです(T_T)

484 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 23:30:41 ]
ユーザーフォームでつくったコンボボックス等をダブルクリックして編集画面を開きます。
ここに標準モジュールで作ったプロシージャをコールしても反映してくれません。
なぜでしょう?

485 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 23:38:10 ]
・何がしたいのか
・現状どうなっているのか
・それに対する自分の意見
・自分の環境は何なのか(CPU,OS,Office)
・サンプルをアップローダーに。

このくらいは質問するなら情報として欲しいわ。

486 名前:484 mailto:sage [2009/10/25(日) 23:48:06 ]
なんか勘違いしてたっぽい。
コンボボックスにあらかじめ入れておく項目は標準モジュールからは呼び出せないか。

487 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 23:54:43 ]
最後疑問系なの
質問?
コンボボックス
リストボックスのリストは標準モジュールで指定出来るでしょ
値を入れておきたいならValueに入れればいいでしょ



488 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 09:00:41 ]
マクロ記録
エクセルでCSV開く
該当行削除
保存
記録停止


↑で出てた正規表現ってよくわかんないんだが何が出来るの

489 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 09:57:05 ]
日本語でOK

490 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 17:17:01 ]
Excel2007 statusbarに関する質問です

Dim oldStatusBar

With Application
.ScreenUpdating = False
oldStatusBar = .DisplayStatusBar
End With

〜処理〜

With Application
.ScreenUpdating = True
.DisplayStatusBar = oldStatusBar
End With

として処理中、statsubarに "現在 " & code & " を処理中"としてcodeを
表示させているのですが、終了後に
"現在 0 を処理中" となります。
これを処理終了後には何も表示させなくしたいのですが、どうすれば
良いのでしょうか。
.DisplayStatusBar = ""とすると、
実行時エラー 13
型が一致しません
となります。



491 名前:デフォルトの名無しさん [2009/10/26(月) 20:36:59 ]
>>1の★4に該当しますが、他にいいスレがあったら誘導してください。

Long型の数値からリトルエンディアンByte(4)型に分割したいのですが、どのようにしたらよいでしょうか。
VBだとLong型が8バイトと聞いたので、こちらに質問しました。

よろしくお願いします。

492 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 22:09:15 ]
1回だけランチしましたが、それっきりで不発です。
どこが変なんでしょ?

CODE

var path='C:/Program Files/Microsoft Office/Office/excel.exe';
var args='';

this.setAttribute('oncommand','this.startProcess("'+path+'","'+args+'")');

this.startProcess=function(path,args){
var file = Components.classes['@mozilla.org/file/local;1']
.createInstance(Components.interfaces.nsILocalFile);
var process = Components.classes['@mozilla.org/process/util;1']
.getService(Components.interfaces.nsIProcess);
file.initWithPath(path.replace(/\//g,'\\\\'));
process.init(file);
process.run(false,[args],1);
}


493 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 23:13:30 ]
>490

2007は知らんけど2003ならば
Application.StatusBar = False

494 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 00:26:15 ]
>>491
VBAのLongは4バイトです
8ビットずつマスクとシフトしながら分割してください

495 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 00:27:36 ]
>>492
VBSはスレチ

496 名前:491 [2009/10/27(火) 01:21:41 ]
>>494
ありがとうございます。
ただ、そのままするとマイナスの値のときにおかしくなってしまいます。
もうすこし詳しく教えていただけないでしょうか。


497 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 01:34:34 ]
>>496
MSBだけ別の変数にとっとけばいい



498 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 01:41:11 ]
492はどうみてもJavaSな件

499 名前:491 [2009/10/27(火) 16:25:08 ]
>>496
ありがとうござました。
マイナス関係なくできました。
難しく考えすぎてたみたいです。


500 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 19:39:03 ]
Sub Main()
Dim strPath As String
Dim wkb As Excel.Workbook
Dim wks As Excel.Worksheet
Dim rng As Excel.Range
Dim col As New Collection
strPath = Excel.Application.GetOpenfilename
If strPath = "False" then
Exit Sub
End If
Set wkb =Excel.Workbooks.Open(strPath)
Set wks = wkb.Sheets("Sheet1")
Set rng = wks.Range("A1")
call col.Add(rng)
If Not(wkb Is Nothing) Then
Call wkb.close: Set wkb = Nothing
End If
If col Is Nothing Then
Set rng = col.Item(col.count)
Debug.Print rng.Value
End If
End Sub
'colって、Nothingじゃないの?
'Is Nothingの対象はRange型のcolでは無くて、col自体を対象としてんのかな。

501 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 20:01:28 ]
Dim col As New Collection

502 名前:デフォルトの名無しさん [2009/10/27(火) 22:27:30 ]
XP で2003使ってます。

2003及び2000で動いてくれれば・・

アクセス側から、あるワークシートにおいて、
Set myWKS = myWKB.Worksheets("test")
With myWKS
t = DCount("*", "T1")
.Range("A10").CopyFromRecordset myRS
.Range("A10:D" & t + 9).Select
.Application.ActiveCell.Sort Key1:=Columns("C"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlSortColumns, SortMethod:=xlStroke
    .SaveAs "C:\Documents and Settings\Owner\デスクトップ\sample\テスト作成.xls"
    .End With

という処理を行っています。
アクセスを起動後1回目は、ソートが正常に動きますが、2度目以降はうまくソートしてくれません。

次にこのメソッドを使用するときに、引数を指定しなかった場合は、保存されていた値が使用されます。
と、ヘルプにもあるように、ここにひっかかっているのだと考えていますが、
どうにも原因を突き止められません。
どうぞよろしくおねがいします。

503 名前:デフォルトの名無しさん [2009/10/27(火) 23:15:04 ]
解決しました。
理由は先ほどエラーが出ていたときは1度目の実行はうまくいくのにエクセルファイルを閉じても
エクセルのプロセスが残ったままになっており2度目はその影響(?)で失敗していました。

コード自体に問題はなく、参照設定のexcelオブジェクトの優先順位を一つ上にあげてやれば、
正常に2度目以降も動くようになりました。

ただ、凄く不安定な正常性ということなので、根本を解決できる何かがあれば
是非アドバイスおねがいいたします。

504 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 23:45:25 ]
残ってるのはDBSオブジェクトじゃね
エラー出たときとか終わるときにちゃんと閉じてる?

505 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 00:36:54 ]
そこでした。
オブジェクト指定をしっかり作ったエクセルアプリケーションにしていなかったり、
いきなり.Rangeにしてたりで、タスマネに5個ぐらいEXCELってありましたw

コード多すぎて無理臭いので、クエリのほうから指定することにしました。
以降はいい加減に組まないように注意せねばでした。

ありがとうございました

506 名前:デフォルトの名無しさん [2009/10/28(水) 10:55:56 ]
エクセルのマクロの問題に対する質問はここでいいですか??

507 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 11:13:24 ]
OK
バージョン書いてね



508 名前:デフォルトの名無しさん [2009/10/28(水) 13:01:21 ]
ここは宿題かたずけますスレって考えてもいいんですかィ

509 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 13:19:44 ]
>>508
質問の内容とタイミングによる
時間帯と曜日によって、宿題は自分でやれってレスが付くだけのこともあるし
VBA厨が喜んでプログラムを作ってくれることもある

510 名前:デフォルトの名無しさん [2009/10/28(水) 13:55:04 ]
とりあえず書いてみます
Excel2003

めっちゃ初歩的です…
Do〜LoopかForーNextを使わなければならないみたいです。
1〜10までの整数で
偶数の和をD1
奇数の和をE1
に表示せよ です。

511 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 14:02:20 ]
ExcelはスプレッドシートソフトでVBAの練習台じゃ
ありません。
VBAの練習をしたいのなら、Accessでやれっつーの
(AccessではExcelでやれっていわれるかも)
てなわけで、Active BASICがVBAと文法互換だったら
いいのになとおねだりしよう

【サーバー各所】ActiveBasicその11【冬眠中】
pc12.2ch.net/test/read.cgi/tech/1241316033/

512 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 15:07:11 ]
>>511
あほか。Access持ってる奴なんてごく少数だろうが。

513 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 15:22:58 ]
ACCは初めにオブジェクトアクセスを経由する必要があるから、VBAの初学には向かないよ、と思ってる
エクセルなら(初めの内は)オブジェクト志向を意識しないでコードが組める上、マクロの記録がある
マクロの変換じゃなくて、操作をVBAに変換するから、体感出来る点が非常に優位

逆に初めからRecordset操作を理解したほうが後が楽かもしらんけども

514 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 16:37:27 ]
>>513
VBA扱う場合はやっぱフォームから入るべきだろ。
テキストボックスで入出力でいいじゃん
Excelの場合CellをVBAで扱うのは、VBAだけじゃ不十分で
VBAの基本とExcelの基本が十分出来上がって独立
共存できるようになってからじゃないと両方駄目になる悪寒
Accessの場合はVBAが出来てからテーブルやらクエリ
やら覚えていく方法がとれる。

515 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 17:06:49 ]
別のスレでやれ

516 名前:デフォルトの名無しさん [2009/10/28(水) 18:30:39 ]
VBAを使用してアルバイトの出勤簿を作成しています。
例えば、セルJ6に名前をInputBoxを使って入力した時に、セルJ5にフリガナをカタカナで
自動で表示する場合はどのようにすればよいでしょうか?

517 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 20:57:08 ]
フリガナにはそれ用のワークシート関数を使う



518 名前:デフォルトの名無しさん [2009/10/28(水) 21:23:03 ]
PHONETIC関数でしょうか?
フリガナを表示しないで、氏名(漢字)が表示されてしまいます。

519 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 21:39:35 ]
大した人数でないなら
名前と読み方リスト作ろうぜ

520 名前:デフォルトの名無しさん [2009/10/28(水) 21:44:07 ]
読み方リストを作り、セル参照を使うということですか?

521 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 21:51:46 ]
でもなんでも
どう料理するかは考えてないけど
テキストボックスに名前入れると読み仮名ラベルに表示するとかかな

522 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 21:58:13 ]
>>510
宿題なのかな?答え書いたら勉強にならないから、ヒント書いておくね。

for i = 1 to 10 next

if i and 1 = true then 奇数
if i and 1 = false then 偶数

cells(4,1).value = cells(4,1).value + i

がんばって。

523 名前:デフォルトの名無しさん [2009/10/28(水) 22:07:25 ]
ワークシート関数を使うことに決めました。


524 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 22:08:51 ]
Mod 演算子を使わないのは速度厨なせいでつか?

525 名前:517 mailto:sage [2009/10/28(水) 22:16:47 ]
detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1414375849

なるほど、セルに直接入力しない場合で、phoneticを使用する場合は工夫が必要だね

526 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 22:40:03 ]
ワークシート関数はVBAからでも呼び出せるっちゃ呼び出せる

527 名前:デフォルトの名無しさん [2009/10/28(水) 22:49:49 ]
変更して保存
  ↓
Excelを終了
とするにはどういうふうに構文をかけばよいでしょうか?



528 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 22:59:33 ]
>>527
Application.Quit

529 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 23:49:49 ]
そういえばかなり前に1からnまでの和をループを回して求めよってのに
For i = 1 To n
Next
和 = (1 + n) * n / 2
みたいなのがあったな。

530 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 23:53:53 ]
>>522
ビット演算なんて分るやつあまりいないんだから、そういう知ったかぶりの回答はやめましょうね。

531 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 00:19:50 ]
奇数 = 0
偶数 = 0
For i = 1 To 10 Step 2
  奇数 = 奇数 + i
  偶数 = 偶数 + (i + 1)
Next
Debug.Print 奇数, 偶数

532 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 00:26:27 ]
>>530
>ビット演算なんて分るやつあまりいないんだから

え!そうなの?


533 名前:デフォルトの名無しさん [2009/10/29(木) 00:48:08 ]
>>510
教えてくれとは書いていなかったけど、よかったら参考にしてください。

Sub PlzDoHomeworkByYourself()

Range("D1").Value = 0
Range("E1").Value = 0

' The following was written by someone on the net.

For i = 1 To 10
If (i Mod 2) = 1 Then '2で割り切れない場合(奇数)
Range("E1").Value = Range("E1").Value + i
Else '2で割り切れる場合(偶数)
Range("D1").Value = Range("D1").Value + i
End If
Next

' If you're a teacher, you ought to punish your student who didn't do homework himself.

End Sub

534 名前:デフォルトの名無しさん [2009/10/29(木) 01:18:45 ]
>>533

ありがとうございます!!また頼むかもしれませんがよろしくお願いします。

535 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 01:45:25 ]
Sub Main()
Dim rng As Excel.Range
Dim i As Integer
Set rng = Excel.ThisWorkbook.Sheets("Sheet1").Range("D1")
With rng
'初期化
.Offset(0, 0) = 0 '$D$1
.Offset(0, 1) = 0 '$E$1
For i = 1 To 10
Select Case True
Case (i Mod 2) <> 1 '偶数
.Offset(0, 0) = .Offset(0, 0).Value + i
Case (i Mod 2) = 1'奇数
.Offset(0, 1) = .Offset(0, 1).Value + i
End Select
Next i
'初期化
.Offset(0, 0) = 0 '$D$1
.Offset(0, 1) = 0 '$E$1
i = 1
Do While i < 11
Select Case True
Case (i Mod 2) <> 1 '偶数
.Offset(0, 0) = .Offset(0, 0).Value + i
Case (i Mod 2) = 1'奇数
.Offset(0, 1) = .Offset(0, 1).Value + i
End Select
i = i + 1
Loop
End With
End Sub


536 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 02:03:47 ]
>>510

For i = 1 To 10
  Cells(1, 4 + (i And 1)) = Cells(1, 4 + (i And 1)) + i
Next

537 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 09:15:12 ]
>>532
officeのVBAだと使わないしねぇ
vbaだと知ってても使う場面がほとんど無い品




538 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 09:24:31 ]
>>529
なにそれ面白い


ビット演算とか知識はかろうじてあるけどナニソレ

539 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 12:14:21 ]
俺ならこうやって高速化するぜ

For i = 1 To n Step n
Next
和 = (1 + n) * n / 2

540 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 12:21:10 ]
すまんが教えてください

vbaでie制御して、ieのframes(a)内を全選択してコピーしたい。
frames(a)を全選択することが重要で、frames(b)の情報は必要ないし、innerText等での情報取得は避けたい。

ExecWBとSendKeysでやってみたが上手く行かなかった。
やり方に問題があるのか、違う方法があるのか?

教えてください。

541 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 12:21:25 ]
おれならこうだな

for i = n to n
next

542 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 12:46:51 ]
速さならこっちかな?

For i = 1 To n
Exit for
Next
和 = (1 + n) * n / 2

543 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 13:08:40 ]
さすがにこれは反則だろうな

Goto aaa
For i = 1 To n
Next
:aaa
和 = (1 + n) * n / 2

544 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 13:21:48 ]
和 = (1+n)*n/2
Debug.Print 和

ループ

こうか!

545 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 10:22:29 ]
質問させてください。(Excel2003 XP)

ExcelでRS-232-C通信を行おうとしております。
大昔に一度、何かを見ながら自作したマクロを参考にやっています。
当時はMSCommを使用しておりましたので、同様にツールボックスから
MSCommをフォームに貼り付けると、
「サブジェクトは指定された操作に対して信頼されていません。」
と表示され、貼り付けることができません。

Webで調べると、どうやら
ActiveX Killbits に対するセキュリティ更新プログラム (KB969898)
を実行したことで使用出来なくなってしまったようです。
対策はこれを削除とのことですが他へ配布したりPC乗り換えごとに
削除して回るのも非現実的です。

MSCommが分かりやすくて簡単ですのでこれを使用したいのですが
更新プログラムの削除や新たに何かをインストールしなくても使用できる
方法はないでしょうか?
また他にWinAPIで行う方法もありましたがこちらで行う方法が主流?
なのでしょうか?

よろしくお願いします。

546 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 13:10:43 ]

>ActiveX Killbits に対するセキュリティ更新プログラム (KB969898)
>を実行したことで使用出来なくなってしまったようです。
>対策はこれを削除とのことですが他へ配布したりPC乗り換えごとに
>削除して回るのも非現実的です。

>MSCommが分かりやすくて簡単ですのでこれを使用したいのですが
>更新プログラムの削除や新たに何かをインストールしなくても使用できる
>方法はないでしょうか?



自分で何言ってるか分かってる?

547 名前:545 mailto:sage [2009/10/31(土) 15:21:48 ]
>546

失礼しました。

>MSCommが分かりやすくて簡単ですのでこれを使用したいのですが
>更新プログラムの削除や新たに何かをインストールしなくても使用できる
>方法はないでしょうか?

MSCommのようなコントロールが分かりやすくて簡単ですのでこの様なコン
トロールを使用したいのですが更新プログラムの削除やフリーのアドインなど
をインストールしなくても使用できる方法はないでしょうか?
(MS系の更新インストールや代替コントロールのインストールは可)

WinAPIはサンプルを見てもまださっぱり理解できないので出来れば避け
たいのですが、今から作るのであればコントロールではなくWinAPIで行う
べきでしょうか?

よろしくお願いします。




548 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 19:18:22 ]
MSCommを使いたいなら対策は「ActiveX Killbits に対するセキュリティ更新プログラム (KB969898)」を削除


549 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 19:33:45 ]
セキュリティパックとは、古く多少リスキーでありながらも
公開されていたDLLとかの機能を殺してしまってモノシリッ
ク化しつつある疑似カーネル群のコードを間接的に使うように
することだったんでつね

550 名前:デフォルトの名無しさん [2009/11/02(月) 11:29:29 ]
>>545
ttp://ziddy.japan.zdnet.com/qa5065179.html
これはどう?

551 名前:545 mailto:sage [2009/11/02(月) 22:21:47 ]
>550

ありがとうございます。
投稿前にこれも試したのですがVB6が入ってないから
ダメと言われました。

WinAPIに挑戦してみます。
ありがとうございました。

552 名前:デフォルトの名無しさん [2009/11/03(火) 05:55:57 ]
>>551
EasyCommというモジュールを使うと、素人の自分でも簡単に機能実現出来ました。

553 名前:デフォルトの名無しさん [2009/11/03(火) 13:19:49 ]
>>551
VB6のSP6のruntimeのみってvectorとかに無い?
#自分はsp5の使ってるけど

554 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 13:36:56 ]
Vector のダウンロード数が一番になってるランタイムって、
コメント読んだらシステム破壊の事が書かれてて怖いわw

俺は昨日ソフト更新系のサイトでコレを発見したので入れてみた。

ttp://www.hmpage.jp/vb6rtest.htm

セットアップがVB6のプロジェクトのタイプなので、インストール後に
アンインストールして、ライブラリ類は全残しでいけた。

555 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 14:58:37 ]
Frameworkさえいれておけば.NETの機能って使えるんだな
最近知ったけどStringBuilderとか使えて便利だ

556 名前:デフォルトの名無しさん [2009/11/03(火) 15:35:51 ]
>>555
知らんかった・・・・・
#まともなhash使えるとかなりうれしいなぁ

557 名前:デフォルトの名無しさん [2009/11/04(水) 21:19:25 ]
AOD.NET って使える?



558 名前:557 [2009/11/04(水) 21:20:45 ]
訂正
ADO.NET

559 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:32:00 ]
VBAで使えるのはADOであってADO.NETは使えないんじゃなかった?
俺は2007だけどADOでアクセス(という言い方でいいか)してる。


560 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 23:40:03 ]
CreateObjectでインスタンスを無理やり生成してやれば使えるんじゃね
まぁ、そこまでしてやるもんでもないと思うしVSTOでも検討した方がいい

561 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 09:08:12 ]
以前お世話になりました270です。
ネット検索で検索ヒット件数を取得し
A1A2・・・にある単語の件数をB1B2・・・に記録したいのですが、
グーグルでは取得拒否にあってしまい、ヤフーで挑みたいのですが、
送信するのに文字を %5%7 とかにしないといけない(どういうキーワードに
つなげるかもわからない)みたいなのですが、
この送信ワード yahoo.co.jp/search??????? %5%6
とかの、?????と 文字の変換方法を教えていただける方いらっしゃいませんでしょう
か?

562 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 09:13:04 ]
アタックはやめろ

563 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 09:39:23 ]
yahooのデベロッパーのサイトでは一日5万まで使って開発してくれ
というのです。別段500でもいいから自動化させたいのですが・・・
そこには例文がなくて・・・どこかにフォーラムでもないでしょうか?

developer.yahoo.co.jp/webapi/search/websearch/v1/websearch.html

564 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 11:05:12 ]
Yahoo! JAPAN Web APIはあきらかにスレ違い

565 名前:デフォルトの名無しさん [2009/11/07(土) 17:28:03 ]
excel vbaで他のブックのセルデータを参照するにはどうすればよいの?

566 名前:デフォルトの名無しさん [2009/11/07(土) 17:30:07 ]
上、ちなみにexcel2003です。
Workbooks(“ブック名.xls”).Worksheets(“シート名”).Activate
これをやっても、インデックスが有効範囲にありませんが出ます。
どなたかお願いします。
     

567 名前:デフォルトの名無しさん [2009/11/07(土) 18:13:11 ]
フォームのTextboxにドラック&ドロップで任意の列データを持ってくることはできますか?
やりたいことは、2つの異なるブックのフォームの列データーを他のブックの列データーと比較をしたいのです。





568 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 20:06:01 ]
>565-567

つマクロの記録

569 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:28:16 ]
B列に1万近くの数値があり、そこから特定の範囲(例えば100〜101など)に適した数値を
指定したセルに抽出し、複数ある場合はそのしたに並べて抽出するようなプログラムを作りたいのですが、
どのようにしたらよいでしょうか?

Excel2003です

570 名前:デフォルトの名無しさん [2009/11/08(日) 00:32:48 ]
VBAでRSSの読み込みって出来ますか?

571 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 09:22:15 ]
>>570
こんなとこで聞くよりgoogleで「VBA RSS」で検索すれば
よっぽど早く結果に到達できますよ。その上でわからないことを
質問したほうが効率的では?

572 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 09:57:39 ]
>>569
import sys, os
import win32com.client

def main(from_s, from_e, to, rng):
if from_s[1] != from_e[1]:
print 'error'
return
if rng[0] > rng[1]:
print 'error'
return
pwd = os.path.abspath(os.curdir)
xls = win32com.client.Dispatch('Excel.Application')
try:
wb = xls.Workbooks.Open(os.path.join(pwd, 'test1.xls'))
sheet = wb.Sheets(1)
c = 0
for row in range(65535):
if row >= from_s[0] and row <= from_e[0]:
v = float(str(sheet.cells(row, from_s[1])))
if v >= rng[0] and v <= rng[1]:
sheet.cells(to[0] + c, to[1]).value = v
c += 1
wb.SaveAs(os.path.join(pwd, 'testout.xls'))
wb.Close()
except:
print sys.exc_info()
finally:
xls.Quit()

if __name__ == '__main__':
main((10, 2), (20, 2), (3, 5), (99.0, 1000.0)) # B10-B20 -> E3-

573 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:00:45 ]
インデント消えてた orz
import sys, os
import win32com.client

def main(from_s, from_e, to, rng):
  if from_s[1] != from_e[1]:
    print 'error'
    return
  if rng[0] > rng[1]:
    print 'error'
    return
  pwd = os.path.abspath(os.curdir)
  xls = win32com.client.Dispatch('Excel.Application')
  try:
    wb = xls.Workbooks.Open(os.path.join(pwd, 'test1.xls'))
    sheet = wb.Sheets(1)
    c = 0
    for row in range(65535):
      if row >= from_s[0] and row <= from_e[0]:
        v = float(str(sheet.cells(row, from_s[1])))
        if v >= rng[0] and v <= rng[1]:
          sheet.cells(to[0] + c, to[1]).value = v
          c += 1
    wb.SaveAs(os.path.join(pwd, 'testout.xls'))
    wb.Close()
  except:
    print sys.exc_info()
  finally:
    xls.Quit()

if __name__ == '__main__':
  main((10, 2), (20, 2), (3, 5), (99.0, 1000.0)) # B10-B20 -> E3-

574 名前:デフォルトの名無しさん [2009/11/08(日) 10:44:08 ]
2003 初心者です。
ワークシートイベントで処理を抜け出すのはどうすれば・・
一度だけ計算させたいんですが。どこかで見た気がするのに探せない。


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 Then
Target.Value = Target.Value + 1
'この後どうすれば・・・・
End If
End Sub

575 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 11:14:38 ]
>574

どっかのセルに実行済みをセットすれば?

576 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 12:57:57 ]
>>574
Application.EnableEventsを使うが、実用になるChangeイベントを書くのはかなり難しいよ。
あきらめた方がいいと思うな。
真っ先に考えられる不具合は消した場合でも1になったりすることだな。
問題はこれだけじゃないからかなり難解。

577 名前:デフォルトの名無しさん [2009/11/08(日) 13:35:30 ]
>>575-576
どもです。そもそも無茶なことか・・・
初心者ゆえに「出来る・出来ない」が良くわからない

ありがとでした



578 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 14:05:32 ]
staticでも使え

579 名前:デフォルトの名無しさん [2009/11/08(日) 17:28:43 ]
シート起動時に、フォームを出してそれを10秒後で消す。
その10秒の間に、フォーム内のTextboxの値を
ユーザーの任意で変更できるようにと考えましたが、
タイマーしてる間、フォームが白く固まって値変更ができません。
何か改善策はありますでしょうか。2003です。

Private Sub UserForm_Activate()
Dim MyWaitTime As Date
'10秒後に閉じる場合
MyWaitTime = TimeSerial(Hour(Now()), Minute(Now()), _
Second(Now()) + 10)
Application.Wait MyWaitTime 'マクロを指定の時間まで停止
Unload.対象日数の入力フォーム 'UserFormを閉じる
End Sub

580 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:44:47 ]
イベントループ拾わんといかんだろ

581 名前:デフォルトの名無しさん [2009/11/08(日) 17:45:47 ]
C言語側で扱うためのバイナリファイルをVBAで出力していて
整数値は除算や剰余算を用いてバイト型配列に代入して出力しているのですが、
浮動小数値(単精度)をバイト型配列に含める場合にどう処理すればいいのか分からず困っています。
良い解決策をご教授頂ければ助かります。


582 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:10:19 ]
ttp://program.station.ez-net.jp/special/vc/atl-com/variant.asp
ttp://www.hi-ho.ne.jp/babaq/bstr.html
ttp://piza.2ch.net/log/prog/kako/947/947909317.html
support.microsoft.com/kb/167668/en-us/

583 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 22:34:13 ]
>>581
配列に入れる理由がファィル出力のためだけなら、いちいち配列など使わずに
ファイルをBynaryモードで開いて整数も実数もそのまま出力してしまえばいい。
ただし、実数の内部表現が異なる場合は使えない。

どうしてもVBAの中で1バイトずつ取り出す必要があるなら、
Win32APIのMoveMemoryを使うぐらいしか方法がない。

584 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:42:51 ]
#ファイル番号 でファイルにバイナリアクセスしている時に、
ストリーム位置を取得する方法を教えてください。
(Cのftell()相当の操作)

585 名前:584 mailto:sage [2009/11/09(月) 21:06:44 ]
自己解決しました。
Seek( ファイル番号 ) で取得できました。

586 名前:デフォルトの名無しさん [2009/11/10(火) 15:17:54 ]
Private Sub UserForm_Initialize()

Dim lastRow As Long
Dim ReturnBook As Workbook, TargetBook As Workbook
Set ReturnBook = ActiveWorkbook
Application.ScreenUpdating = False
Set TargetBook = Workbooks.Open("D:\test\sample.xls")

With TargetBook.Sheets("Sheet1")
' ListBox1.ColumnHeads = True
Me.ListBox1.List = .Range(.Range("B2"), .Cells(.Rows.Count, 2).End(xlUp)).Resize(, 2).Value

ReturnBook.Activate
Application.ScreenUpdating = True
TargetBook.Close
End With
End Sub

削除区分  コード 商品名
0    1001 りんご
1  1002 みかん
0    1003 バナナ

こういう風な外部ブックに対して削除区分が1のデータをリストボックスに
表示しないようにするにはどうすればいいですか?教えてください


587 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 23:44:43 ]
b.hatena.ne.jp/articles/200911/553
会社の仕事でマクロを組むのはズル? 事務作業の効率化に意見さまざま




588 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 23:48:02 ]
マクロを組むのはズルじゃないが
他人が作ったマクロを勝手に使って
仕事を早く終わらせるのはズルだと思う
少しはリスペクトなりインセンティブなり気を使えと

589 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 15:13:14 ]
その理屈でいくとPCも電卓もせめて一度は作ってから使えということになるが

590 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 15:25:27 ]
その理屈でいくと家も会社もせめて一度は作ってから住め(従事)ということになるが

591 名前:デフォルトの名無しさん [2009/11/11(水) 22:10:44 ]
シート2の表を、シフト+編集で図のコピーを行い、シート1に貼るマクロを組みましたが、
そのシート1の貼りつけた図のコピーを切り取るマクロを組むと、ピクチャー番号が異なるために、できません。どうすれば、解決できますか?

592 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:21:57 ]
以下のような動作をするマクロって、VBAで作成できますか?
(実現可能性だけ教えて頂ければ、自力でどうにかしたいと思います)

・処理内容
 Outlook2007で、
 特定の件名がついたメールは、メール内容表示の際にボタンを出現させて、
 ボタンを押すことでExcel2007にメールの内容を転記させる。
 例えば、以下のような感じです。

 ■Outlook
  件名:○○見積書
  メール内容:
  ○○費 \50000
  △△費 \100000
   ―――-
  |ボタン|←ポチっとな
   ―――-
 
 ■Excel
  A1セル:○○費
  A2セル:\50000
  B1セル:△△費
  B2セル:\100000
  が転記される
 
 


593 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:23:58 ]
できるっちゃできる

594 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:28:37 ]
シート上に下記のパラメータで長方形のオートシェイプを作りたくて書いたVBAです

Sub 四角形2()

Dim MyShape As Shape
Set MyShape = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 40, 425, 355, 90)

With ActiveSheet.Shapes.Range(MyShape.Name)
.Fill.Visible = msoTrue
.Fill.Solid
.Fill.ForeColor.SchemeColor = 10
.Fill.Transparency = 0.5
End With

End Sub


しかし実際にはWith内で指定したパラメータは常に共通で
位置と大きさのみ違う複数のケースでの長方形を作りたいのです。

With〜End WihtをPrivateFunctionに書いて、MyShapeの値を変えて参照させれば良いですか?

あと自分で書いておいてなんですが(MyShape.Name)は何を表すんでしょう?

595 名前:デフォルトの名無しさん [2009/11/12(木) 19:57:22 ]
質問です。
あるフォルダに入っているテキスト形式のデータ10個を
エクセルで開いていくVBAのプログロムを書いている
のですが、エラー文で「データ_i.txtがありません」と表示されます。
私の書いたプログラムは下記です。

Sub テスト()
テスト Macro
Dim i As Integer

For i = 0 To 5
ChDir "C:\Documents and Settings\データ"


Workbooks.OpenText Filename:= _
"C:\Documents and Settings\データ\_i.txt" _
, Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Next i
End Sub

このプログラムの目的は、テキストデータの入っているフォルダを
他の名前に変更したときも、その中に入っているテキストデータ10個を
エクセルで展開するためです。おそらく
"C:\Documents and Settings\データ\_i.txt"のiの部分が間違えていると
思うのですが、どうすればいいでしょうか?よろしくお願いします。

596 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:10:08 ]
知らんがな(´・ω・`)

597 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:32:33 ]
"C:\Documents and Settings\データ\_" & i & ".txt"
としてやらんといかんのとちゃうかな



598 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:34:03 ]
>595

データさんか?
普通はそこにアカウント名が入るんだが。

まさかとは思うがi.txtのiって・・・w

599 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 21:00:42 ]
>>このプログラムの目的は、テキストデータの入っているフォルダを
>>他の名前に変更したときも、その中に入っているテキストデータ10個を
>>エクセルで展開するためです。

(・ω・`)???

600 名前:595 [2009/11/12(木) 21:12:37 ]
みなさんアドバイス感謝です!

説明不足ですみません。

質問ではテキストデータと書きましたが、.datで保存されています。

フォルダの中に「_0.dat」「_1.dat」「_2.dat」…というデータが10個あります。

ほんとは10個開きたいのですが、とりあえず5個開けたら5を10に直せばいいかなと

思ってます。

>>597さん

\データ\_"&i&".dat"としましたが、コンパイルエラーになります。

dat形式のデータは無理なのでしょうか?


601 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 21:18:41 ]
"C:\Documents and Settings\データ\_" & i & ".txt" _

死ね >>600

602 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 23:40:30 ]
597見てダメなら何聞いてもダメだろ
スペルミスとかスペース抜けとかで質問されても困る

603 名前:デフォルトの名無しさん [2009/11/12(木) 23:56:23 ]
Range("G1").Select の
1をfor文使って
1〜100までするにはどうすればいいでしょうか?

For n = 1 To 100
Range("D&n&").Select
だとエラーになります

604 名前:デフォルトの名無しさん [2009/11/12(木) 23:59:00 ]

Range("G1").Select ×
Range("D1").Select ○

605 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:00:00 ]
Range("D" & n).Select

あるいは

Cells(n, 4).Select

606 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:06:08 ]
>>595>>603は同じヤツか?

根本的に・・・

607 名前:デフォルトの名無しさん [2009/11/13(金) 00:09:35 ]
ActiveCell.FormulaR1C1 = "=-(R[+&n]C[-2]-R[-4]C[-2])"

R[+&n]を引数にする場合はどうでしょうか?



608 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:49:12 ]
もはやネタだろ

609 名前:デフォルトの名無しさん [2009/11/13(金) 00:53:26 ]
ネタじゃないです><
ActiveCell.FormulaR1C1 = "=-R["&n&"]C[-2]-R[-4]C[-2]"
とかやってみたんですがダメでした

610 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 01:02:20 ]
寝たとしてもまったく面白くない
もっと回答したくなるように質問しろ

611 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 01:03:42 ]
>>594

AddShapeの引数を変数にして全体をループさせるだけでいいのでは?
共通パラメータをわざわざ関数にする必要はないと思う。

>あと自分で書いておいてなんですが(MyShape.Name)は何を表すんでしょう?
ShapesのRangeプロパティは、指定したShapeのオブジェクトを返す。
この"指定した"というのが今回の場合はMyShape.Nameとなる。

正直わかりにくいし、Rangeなんて使った事無い。
With ActiveSheet.Shapes(MyShape.Name)
もしくは
With MyShape
このどちらかが一般的だと思ってるがどうだろうか。

>>607
>>595>>603に続いて同じ失敗をしている。
>>597を参考にして考えればわかる。

612 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 10:51:53 ]
変数使ってセル座標の指定するなら、cells使った方が楽だと思ってる。

613 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 10:57:30 ]
その方が速い

614 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 14:43:25 ]
すまんが教えてください

vbaでie制御して、ieのframes(a)内を全選択してコピーしたい。
frames(a)を全選択することが重要で、frames(b)の情報は必要ないし、innerText等での情報取得は避けたい。

ExecWBでやってみたけど上手く行かなかった。
SendKeysもいまいちだったし、出来るならやりたくない(違う作業が出来なくなるため)
やり方に問題があるのか、違う方法があるのか?

教えてください。

615 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 18:44:29 ]
・自分に何かしら不幸な出来事が起きたとき、落ち込んでしまうのは仕方のない話。ショックが大きいほど、
 人前に姿をさらすのも苦痛になるものだが、そういうときの行動こそ、人間の大きさが見えるものかもしれない。

 米シカゴに住む34歳のティアン・ハリスさんは、 10月31日に幸せな花嫁となる予定が、6日前になって相手の
 男性から突然結婚の中止を告げられてしまった。式直前でのまさかの事態だが、さらなる追い打ちを
 かけられてしまう。慌てて母親と一緒にパーティー会場にキャンセルを申し出ると、もう返金は不可能と
 言われたそう。駐車場に座り込み落ち込むハリスさんと、なす術もなく見守る母親。そのとき、向かいに
 あった老人ホームを目にして良いことを思いついた。

 どうせ無駄にするならと、2人は向かいの老人ホームの人たちとパーティーを開こうと決断する。
 「寄付をしたい」とハリスさんが飛び込んだ老人ホームの施設長は、「彼女はここにいる誰も知らないだろうし、
 そんなオファーも受けたことない」(米紙ニューヨーク・デイリーニュースより)と驚いた。かくして、ハリスさんの結婚パーティーは、
 老人ホームのハロウィンパーティーへと変更。お年寄りたちも、思いもよらぬイベントを大いに喜んだという。

 300人近いお年寄りは思い思いに仮装して、ダンスに興じた。あるお年寄りは「とても楽しい時間だった」
 (米放送局CBSより)と語り、老人ホームに素敵なひとときをもたらしたハリスさんに感謝している。施設長も
 「彼女はどこからともなくやってきて、私たちに美しいパーティーを与えてくれた天使」とハリスさんを讃えた。

 会場の傍らでお年寄りの笑顔を見て満足したというハリスさんだが、本当なら自分が主役になるはず
 だったパーティーにやはり心境は複雑だったよう。母親も「会場で、皆さんの前にいるのが娘だったら
 よかった」と無念さを語り、施設長も「彼女は落ち込んでいたと思う」とハリスさんの心中を慮った。
 しかし、そうした中でもお年寄りたちに幸せな時間を与えたハリスさんの人柄に、施設長は「神は彼女を祝福し、
 きっとほかに良い人を見つけられる」と太鼓判を押す。

 ハリスさんは11月2日に、新婚旅行となるはずだったハワイへ1人で旅立ったそう。花嫁になり損ねてしまった
 ハリスさんだが、彼女が取った決断が多くの人に幸せを与えただけでなく、少なからず自分への励みに
 なったことを願いたい。(抜粋)
 www.narinari.com/Nd/20091112560.html

616 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 18:49:15 ]
なげーよ 2行でギブw

617 名前:デフォルトの名無しさん [2009/11/13(金) 19:33:04 ]
質問です。
10ページある文書のうち、例えば2、5、7ページだけを印刷したい場合、


Sub 印刷()
Worksheets("文書").PrintOut from:=2, to:=2
Worksheets("文書").PrintOut from:=5, to:=5
Worksheets("文書").PrintOut from:=7, to:=7
End Sub


と、やるのでしょうか?
なにかもっと良い方法がありそうな・・・
OSはVISTA、バージョンは2007です。



618 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 21:27:48 ]
Sub 印刷()
Worksheets("文書").PrintOut pages:=2,5,7
End Sub


619 名前: [2009/11/13(金) 22:01:06 ]
質問させて頂きます。
A1からA100に1から10の数字を入力するマクロを作成
していますが、無限ループになってしまいます。。

どのようにすればよろしいでしょうか?

Sub Ary()
Dim Arow As Long
Dim i As Long

For i = 1 To 600
Cells(i, 1).Value = i
If i = 10 Then
i = 1
End If
Next i

End Sub

620 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 22:26:21 ]
>>619
個人的には
>For i = 1 To 600
に突っ込みたいが、まじめに答えるとi=10の時にi=1にしろって指示してるので
i=1 → 10 → 1 → 10 → の無限ループになってる
1,2,・・・10,1,2,・・・ と繰り返したいなら cells(i,1)=i%10 みたいに余りを計算すれば良い
(余りの計算は %じゃなくてmodとかかも知れない。忘れた)

621 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 22:27:52 ]
ごめん
10で割って余りだと0,1,2,・・・,9,0,1,・・・ってなるから1足せ


622 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 22:57:12 ]
>>619
カウンタ変数(i)をForループの中で書き換えるのは可能な限り避けた方がイイ
何回回ったかわかんなくなっちゃうよ

623 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:02:36 ]
【科学】道路に軍手が落ちているワケ、名城大研究チームが突き止める[09/11/05]

namidame.2ch.net/test/read.cgi/hidari/1257990721/




624 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:51:45 ]
>>620
Dim Arow As Longに突っ込めよ

625 名前:デフォルトの名無しさん [2009/11/14(土) 04:51:06 ]
e = "& mi &" + 5 * "& c &" - 5

mi、c は変数です。
何がいけないのでしょうか?

626 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 05:13:52 ]
お前は2chに書き込んではいけない

627 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 07:43:48 ]
e = mi + 5 * c - 5
じゃダメなの?

変数が文字列の中に含まれちゃってるよ。
ただのmiって文字列としか認識されない。




628 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 08:59:38 ]
>>619
Sub Ary()
Dim Arow As Long
Dim i As Long
Dim j As Integer

j = 1
For i = 1 To 600
Cells(i, 1).Value = j
j = j + 1
If j > 10 Then
j = 1
End If
Next i

End Sub
こんなものでどないでしょう。

629 名前:デフォルトの名無しさん [2009/11/14(土) 09:49:32 ]
Arow ってなんだ

630 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:04:03 ]
正解(>>620-621)が出た後にボケ回答(>>622 >>628)が出てくる、の法則

631 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:12:07 ]
自分よりいい答えが出たのがそんなに悔しかったのか

632 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:15:19 ]
(;゚д゚)ァ

633 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:49:33 ]
>>619
Sub Ary()
Dim Arow As Long
Dim r As Range

For Each r In Range("A1:A100")
r.Value = r.Row Mod 10
Next r

End Sub
こんなものでどないでしょう。

634 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:50:58 ]
ごめん
10で割って余りだと0,1,2,・・・,9,0,1,・・・ってなるから1足せ


635 名前:デフォルトの名無しさん [2009/11/14(土) 11:01:07 ]
.Formular1c1="=Average(R["& c &"]C["& d &"]:R["& c+2 &"]C["& d+2 &"])"

のようにRCの中に変数を入れたい場合はどうすればいいのでしょうか?

アドバイスお願いします

636 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 11:07:03 ]
馬鹿発見

637 名前:デフォルトの名無しさん [2009/11/15(日) 01:17:24 ]
四択問題を作っています。

Public Seikai As Integer, i As Integer, Ruiseki As Integer
Sub Quiz()
Dim Det As String
i = 1
Ruiseki = 0

Do

Det = Sheets("Sheet3").Cells(i, 1)
If Det = "" Then Exit Do
UserForm1.Show
i = i + 1

Loop While Det <> ""

UserForm2.Show
'MsgBox "正解は" & Ruiseki & "問です。"

End Sub

sheet3のA列に問題番号、B列に問題、C列に正解番号を入れています。
問題は50問作ったのですが、この中から20問をランダムに表示する
ようにしたいのですが、どのようにしたらいいかわかりません。
今は、50問全て順番に表示されてしまう状態です。
教えてください。
よろしくお願いします。



638 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 01:45:55 ]
RAND()で適当な番号をふって並び替えて上から20問をつかう

639 名前:デフォルトの名無しさん [2009/11/15(日) 13:25:55 ]
>>618
ありがとうございます!
助かりました。

640 名前:637です [2009/11/16(月) 00:26:37 ]
>>638
マクロを具体的にどう変更したらいいかおしえてください…

641 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 08:16:40 ]
>>640
例えば、D列に乱数で適当な数字を振る
D列を見て数の大きい順に20問を出題する

そこまで自分で作ったのなら、これくらいできるだろ?
宿題なら自分でどうぞ

642 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 11:18:19 ]
マクロが
A
B
C
D
こうあったとして、全てのマクロを実行するマクロを作るにはどうやったらいいですか?

643 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 11:26:37 ]
全てのマクロを呼び出すマクロを作ればいいだけだろ

644 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 16:52:03 ]
Sub all_execute()
A
B
C
D
End SUb



wwww


645 名前:デフォルトの名無しさん [2009/11/16(月) 20:20:05 ]
私は基本C/C++のPGです。業務でVBAの面倒を見ることになりそうなんですが、
言語仕様がコンパクトにまとまってるような本はないでしょうか?

VBAの仕様なんてたかが知れてるかもしれませんが、分厚い本やWEBサイトをいったりきたりするのは面倒だし
言語に自分の知らない部分があるというのが気持ち悪い性分なので、まとまってる本を探しています(WEBでもいいのですが)

・プログラミングの知識前提で、
・ペラッペラの単色刷りで
・言語使用だけは満足してる
オライリーのクイックリファレンスのVBA版みたいなのが理想です(探したけどなかった)。

VBAの解説本だとプログラミング未経験者向けの、カラフルで妙に分厚い本が多いような気がするのですが
私としてはクイックリファレンス的な本が理想なので…
お勧めの本などあれば教えてください。

646 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:17:54 ]
VBA辞典

647 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:23:14 ]
>>645
マジレスだけどリファレンスとしてはオンラインヘルプ一択
結局ヘルプ以上にならないから初心者向けの分厚いカラー刷りになる
紙がよければ死ぬ気で全部印刷




648 名前:637です [2009/11/17(火) 00:26:19 ]
>>641
RAND()で、
B列とC列のくみあわせは変わってしまうことは無いのですか?

649 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 00:28:24 ]
>>648

ここはマ板ですよ?

650 名前:637です [2009/11/17(火) 00:38:30 ]
>>649
死ねクズ

651 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 00:39:17 ]
>>648
おまえの前にある箱の向こうにも人がいるんだぜ
>>638>>641 も的確な回答してるじゃん
それに対して、あーじゃない、こーじゃない、って・・・
更に質問するんだったら

ありがとう御座います。ヒントを基に組んでみたら、こんな動作をしました。
ここが怪しいと思うので、調べたり試行錯誤したのですが、こんなエラーが出てしまいます。
何かアドバイス頂けないでしょうか?

くらい書いたほうがいんでね?

なんとなくムカつく文章だったので勢いで書いた

652 名前:デフォルトの名無しさん [2009/11/17(火) 00:56:42 ]
的確?

653 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 01:01:43 ]
>>652
的確だと思うぞ。

654 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 08:15:19 ]
>>653

俺も的確だと思うけどな。
質問する側のレベルが低いんだろw


655 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 08:40:16 ]
おまいらココ逝って正しいRANDの使い方教えてきやがれ
www.nicovideo.jp/watch/sm8517855

656 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 09:03:50 ]
【社会】スーパーコンピュータ向け「Excel」開発中 - Microsoft
tsushima.2ch.net/test/read.cgi/newsplus/1258414484/

657 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 11:57:24 ]
A2〜A20000ぐらいまで誕生日(シリアル値)が入っています
B列に年齢を出したいときは、どういう計算をすれば軽くなるでしょうか?
古いPC(win95)なのでものすごく時間がかかっています
他のマクロでも応用したいので、教えてください
お願いします!



658 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 17:49:46 ]
関数にdatedifってのが有るから

=DATEDIF(A2,TODAY(),"y")

で済むと思うけど、どうしてもVBA上から使いたいならworksheetfunctionを付ければ?



659 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 19:25:58 ]
ワークシートに関数を沢山入れると重くなる、という意味に解釈して
VBAにて
Range("B2").Value = DateDiff("yyyy", Range("A2").Value, Now)
を必要行だけ繰り返す

660 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 19:54:25 ]
>>643-644
単純に考えればいいってことがわかった気がする
どうも

661 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 22:22:18 ]
>>660
他のファイルとかに書いてあるのを呼ぶときはスコープが問題になることがあるから気をつけてね
Public宣言付けたり、参照設定したりとか

662 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 09:58:30 ]
ハイパーリンクに関する質問です。
例えばセルA1に何か文字列が入っている状態で
セルA2に以下のシート関数が入っているとします。
=IF(A1="","",HYPERLINK("www.yahoo.co.jp/","Yahoo"))
そうすると、セルA2には"Yahoo"の文字列が表示され
"www.yahoo.co.jp/"へのリンクが張られている状態です。

ここで、VBAにより、リンク先である"www.yahoo.co.jp/"の文字列を
取得する方法はあるのでしょうか?
セルA2に設定されている関数の文字列を解析するという手もあるとは思いますが、
それ以外で方法はあるのでしょうか?


663 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 14:09:25 ]
あるんじゃない

664 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 14:14:34 ]
>>658-659
とてつもなく軽くなりました、ありがとうございました!


665 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 16:45:42 ]
>>664
>>658の数式でも軽くなったの?
もし重かったら揮発性関数のTODAY()のせいだな。
どこかのセル、たとえばF1にCtrl + ;で今日の日付を求めて
=DATEDIF(A2,$F$1,"Y")とすれば数式でも軽くなるかもよ。

666 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 22:41:02 ]
1日か31日までの1ヶ月分のシートがあるとします
それぞれのA1セルに日付をいれてます
この1ヶ月分のシートの月曜日と火曜日だけを対象してなんらかの処理を行いたいときはどのような方法を取ればいいでしょう?
よろしくお願いします

667 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 23:30:02 ]
1日か31日までってことは
1日の場合は前月の2日から一か月分って言う意味?



668 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 23:32:15 ]
>>666
for each collectionでシートに対してループ回して
その中でA1セルを調べて、曜日をチェック
で、なんらかの処理を行えばOK

669 名前:666 mailto:sage [2009/11/18(水) 23:36:40 ]
失礼しました
1日から31日までの31シートです

>>66
ぐぐってみます8

670 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 09:19:43 ]
ワード・アクセスのVBAスレってありませんか?

671 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 09:24:37 ]
pc12.2ch.net/test/read.cgi/tech/1170492587/
pc12.2ch.net/test/read.cgi/tech/1243095768/
pc12.2ch.net/test/read.cgi/tech/1168427595/
pc12.2ch.net/test/read.cgi/tech/1242136180/

672 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 11:42:02 ]
ありがとうございます
検索しにくいっす・・

673 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 19:46:28 ]
WordのVBAはどういうときに使うんだ?

674 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:13:37 ]
時節柄考えられるのは
年賀状宛名流し込み印刷かな

675 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:27:20 ]
それVBAいらないやん

676 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:46:41 ]
差し込み印刷なんかExcel VBAでも同等のことするの簡単だよな。

677 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:49:26 ]
A1セルに1月1日(月)のように入力しています
ここから特定の曜日(火曜日と日曜日など)を区別して処理をおこないたいのですが
どのような方法を取ればよいのかご教授ねがいます



678 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:10:09 ]
>>677
おまえ666だろ
曜日を調べる関数を使う
関数名は自分で調べろ
以上

679 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:43:03 ]
そもそも1月1日(月)って入力するのが間違いだ罠。
1/1と入力して表示形式をm月d日(aaa)にするだけだ。

680 名前:デフォルトの名無しさん [2009/11/20(金) 05:56:15 ]
質問
教えてえろい人
エクセルのVBAを使って、Outlookメールを複数の人に自動送信操作をさせたいです。
Aさん(○○○@○○.co.jp)にエクセルSheet1に記載された内容を送信し、
Bさん(XXX@XX.ac.jp)にエクセルSheet2に記載された内容を送信します。
後、CさんにエクセルSheet3を・・・という具合に・・・
以上の事が、エクセルVBAを使って1回だけマクロを走らせるだけで、できるでしょうか?



681 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 07:34:40 ]
ユーザーフォームのlistviewについて質問です
listviewで縦横のスクロールバーのやり方が分からないのですが
どうすればうまくいくでしょうか?

682 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 11:22:46 ]
>>680
できるでしょうね

683 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 11:48:16 ]
てst

684 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 21:52:10 ]
>>680
ExcelのよりOutlookのVBA使ったらどうよ?

685 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 22:27:51 ]
同一セル内の数字を下のように並べかえたいのですがどうすればいいですか?
「333      「111
 111   ⇒   333
 555」      555」

3桁ずつ切り分けて別セルに出力、ソートをかけて並べかえるというものは
出来たのですが、出来ればマクロの中だけで処理をしたいんです。

686 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:13:54 ]
>>685
安直だけど、例えばセルA1を対象とするならこんな感じ

Sub Macro1()
a = Split(Range("A1").Value, Chr(10))
For i = 0 To UBound(a) - 1
For j = i + 1 To UBound(a)
If a(i) > a(j) Then
tmp = a(i)
a(i) = a(j)
a(j) = tmp
End If
Next j
Next i
Range("A1").Value = Join(a, Chr(10))
End Sub


687 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:17:11 ]
こんにちわ。
質問をさせてください。

正規表現でのマッチパターンを用いて、
文字列をSplitして配列に入れたいと考えています。
以前javaで行った時は問題無く出来たのですが、
VBAの場合には上手くパターンを認識してもらえません。
下のコードで行ったのですが、”スペース”or","の1回以上の繰り返しでSplitを目的としています。

Sub testVBA()
Dim Reg As Object
Dim regPattern As String
Dim reMatch As Object
Dim i As Integer
Dim STR As Variant

Set Reg = CreateObject("VBScript.RegExp")
Reg.Pattern = "[ ,]+"
STR = Split("moug MOUG,モーグ,,もーぐ", regPattern)
For i = 0 To UBound(STR)
Debug.Print (STR(i))
Next
End Sub

続きます。



688 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:17:20 ]
javaのコードは下で行いました。

import java.util.regex.*;
public class testJava {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("[ ,]+");
String[] strs = pattern.split("moug MOUG,モーグ,,もーぐ");
for (int i=0;i<strs.length;i++) {
System.out.println(strs[i]);
}
}
}

VBAで出来るのであればやり方を教えてくださいませ。
VBAでは対応していないと言う事でも構いません。
何卒よろしくお願いします。

689 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:18:42 ]
すいません・・・。
モーグで質問しようとして準備していた文書を張ってしまいました。
ちなみにマルチポストではありませんので、よろしくお願いします。

690 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 00:40:26 ]
>>687
VBAのSplitが正規表現を受付けないんじゃないの

s = "123 456 789"
ArySize = 0
Dim Ary()
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "[ ,]+"
Do
ArySize = ArySize + 1
ReDim Preserve Ary(ArySize)
Set Matches = re.Execute(s)
If Matches.Count <> 0 Then
v = Left(s, Matches(0).FirstIndex)
s = Right(s, Len(s) - (Matches(0).FirstIndex + Matches(0).Length))
Else
v = s
End If
Ary(ArySize - 1) = v
MsgBox v
Loop While Matches.Count <> 0
MsgBox Join(Ary, "$")

691 名前:687 mailto:sage [2009/11/21(土) 08:37:43 ]
>>690
レスありがとうございました。
やはりVBSのオブジェクトですし、VBAのsplitが対応してないのは頷けます。
ソース例の提示、ありがとうございました。
自作関数で対応しようと思います。

重ね重ねありがとうございました。

692 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 10:02:39 ]
excel2007

ブックに変更が有った時に保存するようにしたいのですが、変更が有ったか無かったかのチェックって
どうするのでしょうか?

保存するのはThiworkbookの閉じる時で

Private Sub Workbook_BeforeClose(Cancel As Boolean)


End Sub

の中に入れれば良いのでしょうけれど。


693 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 11:15:06 ]
>>692
If WorkBook.Saved = False Then
  '保存処理
End If

694 名前:デフォルトの名無しさん [2009/11/21(土) 11:21:38 ]
>>693
thxです!

695 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 12:50:52 ]
WinVista-Excel2007

VBAでなくActiveXの問題かもしれませんが
VBAの編集中に起きた問題なのでコチラで。

先にActiveXのボタンを配置しVBAで記述したSub{}を実行するという簡単なものを複数作成していたのですが
5・6個作り終えいざ実行してみようとボタンを配置してあるワークシートを開こうとしたところ
ボタンは表示されずエラー(特定のエラー名表示されず)が起きExcelが強制終了してしまいます。

また新規作成でActiveXのボタンを新たに配置しようとしても同じ現象が起こりました。
アドインも複数導入している状態のためもしかするとVBAの可能性も捨てきれないのではと質問させて頂きました。

対処法・解決策はございますでしょうか?
宜しくお願いいたします。

696 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 13:18:23 ]
>>695
俺は何に原因がわかるかは知らないし、
ActiveXに関係ない話だが俺の話を聞いてくれ

Excel VBAでプログラム作ったんだよ。
クラスとかwitheventsとか使ってね。

そしたらなぜかExcelが強制終了するんだよw
いや、しないときもある。するときもある。
自分のマシンでは強制終了するのに、他のマシンでは動くとか
新しくExcel作ってソース全部移植したら直るんだよ。
でもしばらくするとまた強制終了するようになるんさよ。

原因さっぱりわかんねw
俺は思ったね。Excelで無理しちゃいけねぇ。
単純なマクロ程度で終わらせておくべきだって。

697 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 13:42:52 ]
>>695
起動時に強制終了するアドインでも作ったんじゃね?




698 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 14:51:42 ]
>696
わかる

699 名前:685 mailto:sage [2009/11/21(土) 15:14:26 ]
>>686
出来ました。
ありがとうございました。

700 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:15:33 ]
パチンコ店 ATM8000台 IIJ社 今後4、5年で全国に
www.jcp.or.jp/akahata/aik09/2009-11-14/2009111401_04_1.html
2chとパチンコ屋が無くなれば日本の景気は上向くかもな

701 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:55:37 ]
>>695 >>696
俺も似たような現象で悩んでいる。
アドイン複数入れて、VBAでプログラム作って2〜3回動かすのには問題ないんだが
しばらく使ってExcelを終了させると、
「問題が発生したため、Microsoft Office Excelを終了します。ご不便をおかけして申し訳ありません。」
とかいうふざけたエラーが出てくる。

俺の記憶が確かなら、
グローバル変数とか配列を大量に使いだした辺りでぶっ壊れた気がする。
メモリを開放しなきゃいけないとか、そういうことなのか???

702 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:05:46 ]
エクセルのブック自体が変なメモリリークをしてぶっ壊れるってのをよく聞くぜ。

703 名前:デフォルトの名無しさん [2009/11/22(日) 00:08:50 ]
>>680
MSのサイトにoutlook使ったメール送信のサンプル見つかると思うから
それを参考にしたら?
Accessに取り込んだ内容を登録したメアドにoutlook使って送信するPG
を昔作ったことがあるから、出来るはずだよ
ウイルス対策用(だろうなぁ・・)で1通単位でダイアログ押という仕様の
回避用のexeも見つかると思うから探してくれい


704 名前:デフォルトの名無しさん [2009/11/22(日) 14:29:02 ]
excel 2007
xp sp3

Sheet1のA1にSheet2を参照とした「=SUM(Sheet2!$A$2:Sheet2!$A$3)」を入れる為のマクロ、

Sub test()
Sheet1.Cells(1, 1).Formula = "=SUM(" & Sheet2.Cells(2, 1).Address & " : " & Sheet2.Cells(3, 1).Address & ")"
End Sub

ですと、Sheet1のA1には同一シートを参照とした「=SUM($A$2:$A$3)」となってしまいます。

"=SUM(" & Sheet2.Cells(2, 1).Address & " : " & Sheet2.Cells(3, 1).Address & ")"の部分を
"=SUM(Sheet2!$A$2:Sheet2!$A$3)"にすれば解決するのはわかっておりますが、
どうしてもcellsを使いたく質問させていただきました。
解決策がありましたら、宜しくお願いします。


705 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 14:39:40 ]
>704

突っ込み所がいろいろと・・・
本題は数式のINDIRECTで解決しそうな気がするが?

706 名前:デフォルトの名無しさん [2009/11/22(日) 14:51:06 ]
>>704
Sheet2.Cells(2, 1).Address
が何を返すかを考えればいいんじゃね?

Sheet2.Cells(2, 1).Addressって書き方をするのも珍しい.....

707 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:21:46 ]
プログラミング経験なしで興味を持ち趣味で覚えたいと思い色々考えた結果、
javascriptとvbscriptを学ぼうと思いました。入門するために言語について探しているうちに、
下記のようなことがしてみたいと思ったのですが、出来るのかということと、
もっと適した言語があるのかをご存知であれば助言くださるとうれしいです。

過去の株価を利用したシミュレーションプログラム。
具体的には、データとして興味のある某銘柄の日柄(日別に始値、高値、安値、終値、出来高)
を10年分オープンオフィスの表計算calcにyahooファイナンスから入手しました。
例えば、このデータを使って特定の日にその株を1000株買い、以降10円上がれば売り、売り値から
10円下がればまた買い、その買値より10円下がれば買い増し(仮の現金残高がなくなるまで)し、
それぞれは買値より10円上がると売る。
持ち株がなくなると、高値から1割下がったところからまた始める。
というようなことを繰り返すと、いくらの利益でいくらの買値ので
どれぐらい持ち株になった状態かを結果としてだすものです。

javascriptやvbscriptでも出来るのでしょうか、それとももっと別のスクリプト
言語の方が適しているのでしょうか?
よろしくお願いします。。



708 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:19:54 ]
何か変なヤツが迷い込んでるな〜

709 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:45:53 ]
>>707
ようは売買システムのバックテストしたいんだろ
できるよ

というか言語で出来ることが制約されるケースは少ない
もちろん得意、不得意はあるけど
ってことで好きな言語使いな
そして、このスレ以外に逝け

710 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:56:01 ]
>>707
ExcelVBAがいいんじゃないか?

711 名前:701 mailto:sage [2009/11/22(日) 20:57:29 ]
>>702
MSのバグかよ。

データはエクセルから取得して、処理は他(とりあえずDelphiを考えている)でやって、
結果をまたエクセルに返すかな・・めんどくさ・・

712 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 21:10:43 ]
うっはっっw

MSのバグ扱いかよw

713 名前:701 mailto:sage [2009/11/22(日) 21:26:24 ]
>>712
じゃあ原因は何なんだよ

714 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:12:12 ]
確かに、ウィンドウズもエクセルもMSだな。
そう考えたら、世の中で起きるバグの50%はMSのバグと云っても過言ではない。

715 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:31:13 ]
>>714
だがオレのPCのバグは99%オレのバグと言っても過言ではない

何度PCや開発ソフトのせいにして、その後取り下げたことか・・・

716 名前:デフォルトの名無しさん [2009/11/22(日) 22:41:02 ]
>>715
wwwww

717 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:50:32 ]
>>715
まぁ、シンタックスエラーなら仕方ないな。



718 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 10:52:45 ]
>>510-544
お前らwwwww
今更だけどツボったwwwww
そういうセンスがいるんだなコーディングって俺まだまだだわ。

719 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:34:44 ]
>>707
15マソぐらいとちょっと高いけど、検証くんなどソフトもあるぞ

720 名前:デフォルトの名無しさん [2009/11/23(月) 15:05:25 ]
excel2003

こんにちは

For Nextを使い、
セルE5、E6、E7へそれぞれ「H線」「L線」「中心線」という文字を入れたいのですがどうすればよろしいでしょうか?

For i = 1 to 3
Cells(5,i + 4) = ?
next i

721 名前:デフォルトの名無しさん [2009/11/23(月) 15:30:19 ]
x = Array("H線", "L線", "中心線")
For i = 1 To 3
Cells(5, i + 4) = x(i - 1)
Next i

初心者の発想はこんな感じ。

722 名前:720 [2009/11/23(月) 15:45:34 ]
>>721

早速のご回答、誠に有り難うございます。
>>721様のおかげで解決できましたので、心より御礼申し上げます。


723 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 16:22:36 ]
初心者に配列はいきなりきついんじゃないか?

724 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 17:07:02 ]
>>723
配列無しで出来る?
俺には思いつかなかった

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

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

727 名前:デフォルトの名無しさん [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 18:01:59 ]
なんでループにすんの?

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

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

731 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 19:17:41 ]
vbaにもchoose関数あるの初めて知ったわw

732 名前:デフォルトの名無しさん [2009/11/23(月) 19:29:47 ]
同じく、知らんかった。へ〜。。。

733 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 21:37:37 ]
>>724
お前>>718だろ?w

735 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 21:53:08 ]
おまいらForがかわいそうとかNextが不憫とか思わんの?

737 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:02:05 ]
なんだChooseがVBAで使えるのかよ。
俺も知らんかったわ。

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

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

741 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:28:06 ]
Evaluateか、なるほどそれもあるな。

742 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:28:09 ]
Sub 萌()
Do
Loop
Exit Sub

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

744 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:35:06 ]
ボッタクリの末路は...

745 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:43:56 ]
>>742
無限ループって怖くね?
pc11.2ch.net/test/read.cgi/prog/1140435913/

746 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 14:22:47 ]
Ruby 1.9 And Rails 3.0
www.slideshare.net/arrrrcamp/ruby-19-and-rails-30



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

749 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 17:09:50 ]
www.nikkei.co.jp/news/market/20091126m1ASS0ISS16261109.html

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

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

752 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 18:39:28 ]

暇人


753 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 19:17:14 ]
>>750

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

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


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

755 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 21:23:18 ]
↓うーんセフセフのAA

757 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 21:27:13 ]
↑そのAA持ってないんですいませんがw

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

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





758 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 01:08:03 ]
yes we can

759 名前:720 [2009/11/28(土) 11:55:34 ]
EXCEL 2007

こんにちは

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

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




760 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 12:12:04 ]
.value

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

762 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん [2009/11/28(土) 13:02:02 ]
でも書式コピー梨、連続(加算)は出来ないっぽいよ

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

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

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

766 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:58:00 ]
yes we can

767 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:10:59 ]
>>765
VBAから他のファイルを操作できる

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



768 名前:759 [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 20:28:08 ]
>>767
具体的にはどのようにするんでしょう・・・<ファイル操作
また、AAAという単語はヒットしたので置換したけど、
BBBという単語がない場合、AAAだけ置換したよ、というログとかも取れますか?

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

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

771 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 21:08:53 ]
>>770
おし引き受けた!


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

772 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 23:39:43 ]
>>770
何をやりたいのかもうちょっと詳しく

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

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

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

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


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

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

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

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

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


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

777 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:18:29 ]
プログラマにとっては有益 ← ここ、笑うところ?



778 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:22:35 ]
ゆとりには笑うとこまで指示してやらんと

779 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 02:30:54 ]
OSはXP
バージョンは2002です。


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

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

780 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 10:31:56 ]
>>779
可能

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

782 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 14:41:08 ]
IE6を使える

783 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 14:46:46 ]
まずIEはバージョン6

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

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

784 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 15:05:34 ]
バーチャルPC使えよ

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

786 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 15:26:51 ]
Excelの関数の質問なのですが
入力した数字が6〜10のとき○、11〜15のとき◎

   A  B
1  6  ○
2  11 ◎

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

787 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 15:33:26 ]
VBAと関係ないね



788 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 15:52:52 ]
すみません、間違えました。

789 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん [2009/11/30(月) 22:39:34 ]
リストボックスで数値の項目を右詰めにしたいんですが、どうすればよいでしょうか?
2007です。






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

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

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