[表示 : 全て 最新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/

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 ]
的確?






[ 続きを読む ] / [ 携帯版 ]

前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