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


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

Excel VBA質問スレ Part8



1 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:16:33 ]
ExcelのVBAに関する質問スレです

前スレ pc11.2ch.net/test/read.cgi/tech/1212587819/

★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。

★2 ExcelのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。
   
 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。 
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。

★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み
   コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
   ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)

47 名前: mailto:sage [2008/08/31(日) 11:07:20 ]
VBA経験が「皆無」という生徒に、ExcelVBAでDAOを用いMDBに接続してデータを取得・更新する、
という課題は荷が重すぎるような...。>>42の学校ではどういうカリキュラムでVBAを教えているのか
わかりませんが、最低限その課題を解くために必要な授業を受けるか、必要な説明が書かれた
テキストが配布されているなら、とにかくそれらを参考に自分で何かコードを書いて、
再度質問してみてください。


48 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 11:36:11 ]
んな、難しいもんでもないような。
1日ぐぐって、サンプル試すだけでできるようなるっしょ。

49 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 11:43:56 ]
>>47
あんた優しいな。
経験皆無なわけないじゃん。
>>42が授業聞いてないだけだよ。


50 名前: mailto:sage [2008/08/31(日) 11:48:33 ]
>>45
GroupItemsプロパティから、そのグループに含まれているすべてのシェイプのコレクションを取得できます。
グループを解除する前に、その情報をCollection型変数にでも保管しておいて、
それぞれのテキストを書き換えた後、その情報をもとに再びグループ化すれば、グループ名を使わずに実現できます。

>>48, >>49
情報系の学生で、ちょっとでも他の言語の経験があれば何とかなるかも
あとは>>42の頑張り次第ですね。

51 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 12:28:05 ]
参考書とか期限みたら意味ないことくらいわかるでしょ
コードくれよ

52 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 12:32:00 ]
納期〆切寸前の苦しみを自力できりぬけんのが一番の経験だからな。
おまえのことをおもって、今後誰もレスをせんだろうな。

53 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 13:11:22 ]
yウゼー

54 名前: mailto:sage [2008/08/31(日) 13:46:53 ]
>>41
それについて私も気になってました。>>16に書いてある方法を自分でも
調べていたんですが、シェイプに「keyプロパティ」ってあるんでしたっけ? 
オブジェクトブラウザで探しても見つかりません。


55 名前:45 mailto:sage [2008/08/31(日) 15:17:38 ]
質問を変えます。
複数のグループ化されたオートシェイプのうちの一つを指定するのに
ActiveSheet.Shapes("Group 526").Select のようにではなく、例えばRange("B5")の上に掛かってるグループを指定する、
というような方法はありますか?
シートもどんどん複写して使いますので名前やインデックスだと手に負えない気がします。



56 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 15:59:55 ]
>>53
役に立ちそうで立たないからな。

57 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 17:56:34 ]
コテつけてくれてるんだから見たくない奴はNG指定しろ
それすらできないなら文句言うな

58 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:36:57 ]
>>16
>>54
keyプロパティはないけどidプロパティでシェイプを特定できるから、(id,座標)のような配列や
コレクションを用意しておいて座標<->シェイプの関連づけをすれば解決するんじゃないかな。

59 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 03:45:00 ]
>>55
TopLeftCell プロパティとか BottomRightCell プロパティを利用するのだと思います

60 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:34:42 ]
Excel.Excel.Excel

61 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:49:54 ]
顧客名簿を作ったのですが、2000件近くなり電話番号で検索できるようにしたいと思っています
で、ユーザーフォームで「電話番号入力」欄を作り、そこに電話番号を入れて「検索」ボタンを押すと、
電話番号が一致した「顧客名」、「住所」を同じユーザーフォームに表示するようにしたいのですが、
どんなコードを使うと良いのかヒントを教えていただけませんか?

シートには、

     A         B            C       D
    顧客名    電話番号        住所1    住所2
1   あいだ     090xxxxxxxxx    東京都    杉並区
2   いとう      080xxxxxxxx    北海道    札幌市

という風に記入しています

B1の電話番号「090xxxxxxxx」を「電話番号入力」欄に入れて「検索」ボタンを押すと
「顧客名」 あいだ
「住所1」 東京都
「住所2」 杉並区
という風に表示できるようにしたいのです。

Excelは、2000
OSは、Winddows XP SP3です



62 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:51:35 ]
いちおうユーザーフォームを使って形だけは作って、
「検索」ボタンを押すと該当するデータがない場合にメッセージが出るようにはしたのですが、
そこから先が(というか、ほとんど進んでいないのですが)見当がつきません



63 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 02:35:21 ]
Findで電話番号を検索して行位置を取得
あとはCellsでデータを取ればいい

64 名前:デフォルトの名無しさん [2008/09/02(火) 18:47:07 ]
ChDir ThisWorkbook.Path
Chdrive ThisWorkbook.Path とやって作成した奴を
他人のPCで実行させても同じフォルダ内のファイルを探せなくてエラーが出ます。
デスクトップのフォルダで動作させても
msgbox ThisWorkbook.Pathでは〜¥Tempとなっています。
ユーザー設定のカレントは空白にしても変わりません。
XPの2003で作成し、会社の2007では動作しましたが他のPCのXP、2003で発生します。
どのように対処すべきですか?

65 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 20:52:52 ]
日本語でおk



66 名前:64 mailto:sage [2008/09/02(火) 22:13:35 ]
要は、デスクトップで起動させたブックのThisWorkbook.Pathが
なぜ関係ないC:\〜¥〜¥Tempになってしまうのか?ってことです。

67 名前:デフォルトの名無しさん [2008/09/02(火) 23:44:42 ]
>>64
OfficeXP・2003からOffice2007にアップグレードすればおk

68 名前:デフォルトの名無しさん [2008/09/03(水) 19:41:38 ]
EXCEL2007です。
以下のコードで、実行時エラー1004「アプリケーション定義または
オブジェクト定義のエラーです」になります。
何が原因でしょうか。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim o16 As Integer
Dim o1 As Integer
Dim rgbnum As Integer
r = Target.Row
c = Target.Column

  省略

rgbnum = o16 * 16 + o1
Range(Cells(r, c - 1), Cells(r, c - 1)).Value = rgbnum ←ここでエラー
End Sub



69 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:50:31 ]
cがゼロになってるとか

70 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:51:17 ]
cがゼロじゃなくて、cが1だからCells(r, c - 1)が存在しないとこを参照してるってことね

71 名前:デフォルトの名無しさん [2008/09/03(水) 23:46:30 ]
VBAを1週間前から勉強していて、すごーく簡単なプログラムは作れるようになったのですが、
いまいち理解しているのかどうかがわかりません。
勉強の仕方はネットで調べながら・・・なのですが、
みなさんはどのように勉強してましたか?
課題をもらえるとやりやすいのですが、一人でやってると自分が何をしているのか
わからなくなります。覚えるコツなどありましたら教えてください。


72 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:53:34 ]
>>71
興味あるものを作るところから始めたら?

仕事なら、覚えるしかないからかえってそういう事を悩まずにすむけど。

73 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:57:43 ]
>>71
おれはシューティングゲーム→ギャルゲー→RPGと作って
無駄な時間をすごした。

74 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 03:13:53 ]
俺はVB→ExcelVBAだったから特に勉強とかしてないけど、
VBは最初はいろんな小物ツールとかつくって覚えたなぁ。

75 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 03:29:37 ]
ExcelVBAだったらExcelオブジェクトを理解することが重要だけど、
VBA全体を勉強したいならWin32APIやWindowsCOMオブジェクト
についても勉強する必要があると思うなぁ。
最初はコードが公開されているサンプルを眺めたり流用して何か
役に立つものを作ったらいいと思う。その内にコードが公開されて
いないけど実現したい機能とかも自力で作成できるようになるよ。
Officeだったらコードが公開されていなくてもパスワードクラックの
ツールがあるからそれ使ってちょっと高度なコードにも目を通すと
いいかも。



76 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 03:57:22 ]
結局ダジャレかよ

77 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 11:53:25 ]
>>71
質問掲示板の「回答者」になるのが良いでしょう。
どの掲示板が良いかは自分で判断して下さい。

別に書き込まなくても良いので、色々な方のコードと自分のコードを比較する事が勉強になる。

78 名前:デフォルトの名無しさん [2008/09/04(木) 16:15:58 ]
VBAでオブジェクト指向プログラミングできるの?

79 名前:デフォルトの名無しさん [2008/09/04(木) 18:43:38 ]
むしろ、VBAはOO言語だろ

80 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:18:16 ]
まあOO言語としてはかなり不完全だけど
分類的にはOO言語寄りではあるな

81 名前:68 [2008/09/04(木) 19:49:36 ]
>>69,70
レスありがとうございます。
cはゼロにも1にもなっていないですが・・・。


82 名前:デフォルトの名無しさん [2008/09/04(木) 20:41:23 ]
1つのセルが対象なのにrangeで範囲選択してんの?


83 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:45:17 ]
いいじゃまいか

84 名前:デフォルトの名無しさん [2008/09/04(木) 21:56:37 ]
うーん。出先なんで確認取れないんだけど、
sheets(hoge).range(
の形でどうかな?
sheet changeイベントで、rangeオブジェクトが保持してるシート名が対象rangeと異なるからエラー出してるとか。

適当だけどw

85 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:23:24 ]
>>71
体系だった入門書を通読しろよ、糞ゆとりが



86 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:44:22 ]
cellsに修飾が足りないな、きっと

87 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:45:43 ]
>>68
cに1が入った場合の処理をしていないから
Changeイベントループして最終的に >>70の言う事になってるだけ

88 名前:デフォルトの名無しさん [2008/09/05(金) 00:09:51 ]
toggleMerge("A1:A5")
という命令でA1:A5の範囲のセルを結合させたり結合解除させたいのですが、
実行させても何も起こりません。エラーすら起こりません。
ばらして同様のことをやるとちゃんと動きます。何が悪いのでしょうか。

以下そのコード
Sub toggling(ByRef obj As Variant)
obj = Not obj
End Sub
Sub toggleMerge(ByVal str$)
toggling Range(str).mergeCells
End Sub

89 名前:デフォルトの名無しさん [2008/09/05(金) 00:35:04 ]
スレ違いとは思うのですが助けてください
モジュールで有効な変数宣言しようとすると
Dimとか打ってたらエラーダイアログが0.2秒ぐらいで6連続くらい連発して打ち切れない
Excel2008なんだけど構文チェックスピード早すぎて打てない
どうしたらいいのか教えて頂けないでしょうか

90 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:46:23 ]
>>68
"c"にミスがないのであれば

Sheets(hoge).Range((Sheets(hoge).Cells(r, c - 1), Sheets(hoge).Cells(r, c - 1)).Value = rgbnum
↑のようにしてみてはいかがか

91 名前:デフォルトの名無しさん [2008/09/05(金) 00:50:36 ]
すみませんが
namidame.2ch.net/test/read.cgi/slotj/1216400588/
のスレで確率についてバトルしています

問題はサイコロで1が8回連続して出る確率です
バカが多すぎて疲れました
頭の良い皆様、論破してください
お願いします

92 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:15:08 ]
>>90
Worksheet_Changeイベントに記述しているから
セルに値を入れる前にイベント発生を止める処理を入れるか

cが0にならないようにする処理を入れないと
Changeイベントが連鎖してエラーになる

93 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:20:01 ]
>>89
めっちゃ早く打つ

94 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:28:59 ]
質問するのは全然かまわないんだけどさ、質問スレだからな。
でもさ、質問する前に日本語で質問できるようになってから来いよな。
たのむから。

95 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:00:19 ]
>>92
なるほど。ちょっと賢くなりました。



96 名前:68 [2008/09/05(金) 08:57:53 ]
みなさん、レスありがとうございます。
cが特定の値の時にしか、
セルに値を入れないようにしたら
うまくいきましたm(__)m


97 名前:y mailto:sage [2008/09/05(金) 17:45:41 ]
>>88

おやっ、と思うようなコードですね。
たぶん、MergeCellsプロパティの「実体」を、togglingプロシージャに
参照渡しして、そこからプロパティを操作しようと考えたのでしょうか。
偶然かもしれませんが、なかなか珍しい間違い方をしていると思います。

toggling Range(str).MergeCells

というコードは、
@MergeCellsプロパティを読み出した結果得られた値について、
Aその値をtogglingプロシージャに渡す、
という2段階の処理として実行されます。単純に
「MergeCellsプロパティを、togglingプロシージャに渡す」
わけではありません。

Range(str).MergeCells で取得できるのは、プロパティの実体ではなく、
実体を読み出した結果であり、"True"もしくは"False"というただの値です。
この時点で、実体との関係は断たれてしまっているので、
その値をtogglingに参照渡しして、それを反転させても、
プロパティそのものを操作することにはなりません。

プロパティを操作する場合は、次のように直接操作するようにしてください。

Sub toggleMerge(ByVal str$)
 Range(str).MergeCells = Not (Range(str).MergeCells)
End Sub


98 名前:y mailto:sage [2008/09/05(金) 18:04:43 ]
>>89
何をした瞬間エラーメッセージが出た、というあたりをもう少し詳しく。>93w

>>58
ありがとうございます。やっぱりKeyプロパティはないんですね。


99 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 20:14:32 ]
何言ってんだこいつ

100 名前:デフォルトの名無しさん [2008/09/05(金) 23:31:49 ]
>>97
どうもありがとうございます。
Boolean型のオブジェクトを渡していたからだったのですね。
でもできれば、汎用的にtoggleプロシージャをつかって実装したいです。
Sub toggle(ByRef obj As Variant, ByVal propertyName$)
obj.propertyName = Not obj.PropertyName
End Sub

という感じです。

そこで、新たに質問なのですが、”.”を使わずにプロパティを参照するには
どのようにすればいいのでしょうか。
たとえば、Javascriptだとobj["PropertyName"]でプロパティ参照できるのですが、
VBAには類似の呼び出し方法は存在しているのでしょうか。

101 名前:デフォルトの名無しさん [2008/09/05(金) 23:43:02 ]
ちょっと早めに知りたいので、
pc11.2ch.net/test/read.cgi/bsoft/1219830884/l50x
こちらのほうでも同様の質問をしようと思います。

マルチポストはするな、といわれたくないため、先に宣言しておきます。

102 名前:デフォルトの名無しさん [2008/09/05(金) 23:50:31 ]
VBAではインクリメントは a = a+1 と記述するしかないですか?
a += 1
a ++
はだめでした。
(下は別言語なので当然ですが・・・。)

103 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 00:39:09 ]
>>100
CallByName

>>102
諦めろ。

104 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 01:25:11 ]
hint : overload

105 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 02:05:01 ]
A列のセルに入力があればA列の中で同じ入力がないか検索する
というマクロを作ろうと思っているのですが、セルの入力判定の方法を教えていただけないでしょうか?
宜しくお願いします。



106 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 03:17:52 ]
もっと具体的に

107 名前:105 mailto:sage [2008/09/06(土) 07:39:52 ]
説明が抽象的になってしまいすいません。
A列からF列までそれぞれの列に情報を入力してリストを作っているのですが、
既に何百行も情報を入力していて、都合上同じ情報を追加で入力してしまう恐れがあり、
現在は毎回入力の前にCtrl+Fの検索で既に入力された情報かどうか調べています。
そこでA列のセルに入力があれば入力されたセルより上の既に入力された全てのセルの文字列と比較して、
既に同じ入力があればエラーメッセージを出すというマクロを作りたい次第です。

マクロを作成するにあたって、「A列に入力があれば」という部分をどう書けばいいかわからなかった為質問させていただきました。

A列に同じ情報が入力されるという事は都合上絶対に有り得ない事なのでA列のセルを比較しようと考えています。
・A列には1行目から空白なく順番に情報が入力されている。
・新規に入力する際は現在のリストの最終行の次の行に情報を入力している。
という条件があるので、A列に入力があればというよりA列の最終行の次の行に文字が入力されればという方が正しいかもしれません。

説明が下手で申し訳ありません。
宜しくお願いします。

108 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 09:22:13 ]
>>107
Worksheet_SelectionChange

109 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 09:27:52 ]
リアルタイムのイベントハンドラかぁ・・・。
VBAって自分でイベントの作成は出来るのかな。あまり詳しくないんで分からないや:(

若干重くなるけど、sheetのchangeイベントで、セルを移動した時に、A列の最終行の内容と同じ物をチェックするとか。
うーん・・・あまり美しくないよね。

自分でイベント作成出来るのか、私も知りたいです。
詳しい人お願いします。


110 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:56:04 ]
>>103
ありがとうございました。

111 名前:105 mailto:sage [2008/09/06(土) 14:30:52 ]
>>108,109
アドバイスをくださってありがとうございます。
参考にマクロを組んでみようと思います。

112 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 14:45:53 ]
>>107

重複データがあるかないかを調べるだけでよければ
VBA使わなくても条件付き書式でできる。

113 名前:デフォルトの名無しさん [2008/09/06(土) 16:14:55 ]
Excelの VBA の関数の呼び出し方法が分かりませんので、誰か教えて戴けませんでしょうか?
 C では
// 関数の定義
void abc(void)
// メインルーチン
void main(void)
{
// 関数名
abc();
}
void abc(void)
{
---
}

上記の方法で関数を呼び出そうとして、
Sub 名前()
abc()
End Sub

:abc()
---
return
上記記載の方法では動きませんでした。
素人な問い合わせで申し訳ありませんが宜しくお願いします。


114 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 16:25:59 ]
関数なんだからなんらか値を返す
仮にintegerの型でパラメータを受取ってintegerの何かを返すとして
Sub 名前()
Dim a as integer
Dim param as integer
param=100 ←何かの数字(integerの範囲内)
a = abc(param)

End Sub

Function abc(param as integer) as inetger


abc = **** ←何か処理した結果のintegerの数字
End Function


115 名前:デフォルトの名無しさん [2008/09/06(土) 17:04:48 ]
<<114
113 です。早速のお教え有難う御座います。
なんらか値を返す様に変更します。




116 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 17:10:04 ]
>>113のCのコードを何も考えずにVBAにするとこうだぞ。
Sub main()
    Call abc()
End Sub

Sub abc()
    ---
End Sub
戻り値の型がvoidの関数はSub、それ以外はFunction。
戻り値を受け取らない場合、Sub/FunctionにかかわらずCallを付ける(Call使わない記法もあるけど)。

117 名前:デフォルトの名無しさん [2008/09/06(土) 17:30:42 ]
>>116
113 です。いろいろお教え戴き有難う御座います。
この方法が簡単なので採用させて戴きます。



118 名前:デフォルトの名無しさん [2008/09/06(土) 18:07:40 ]
>>114
>>116
113 です。プログラム作成途中ですが、両方とも必要になりましたので、
共に採用させて戴きます。いろいろと、有難う御座いました。


119 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 21:14:05 ]
pc11.2ch.net/test/read.cgi/tech/1204552981/878

120 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 23:37:07 ]
関数は、なんらかの値をかえすべきであるという考えた方が
身に染み付いてるから、SubとVoid関数は非常にきもちわるい。

121 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 23:38:23 ]
要するに時代遅れですね

122 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 00:36:46 ]
かえり値もたない関数は、デバッグがむずかしくなるから、医療系の俺の会社じゃ
よほどのことがないかぎり作らない。むしろ121がしろうと

123 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 00:52:19 ]
>>122
VBAスレで恥ずかしい事いうなよおっさん。

124 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 01:49:03 ]
LispとかMLでの話なら>>120>>122も分かるが、
VBAで純粋関数型プログラミングは無茶があるだろ、常識的に考えて。

125 名前:89 mailto:sage [2008/09/07(日) 03:31:47 ]
むっちゃ早く打つ案に似た解決策で自己解決しました。
必殺コピペです。
グローバルエリアに変数定義しようとしたらDimと打った時点でエラーメッセージが頻発
変数書こうとしても打っている途中でメッセージ頻発して書けない。
どこかにエラーチェックのタイミングプロパティがあると思うがコピペで解決したから諦めようかと思います



126 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 07:55:30 ]
そういや、functionしか存在しない言語もあるな。

127 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 10:23:41 ]
よくいるんだよね。VBにしかVariant型がないと思ってる自称上級者

128 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 14:27:52 ]
ファイルを開かずにアクティブシートを変更するにはどうしたら良いでしょうか。

AccessのTransferSpreadsheetでエクセルの任意シートへデータを出力していますが、
エクセルファイルを開いた時に、値を出力したシートがアクティブになっているようにしたいのです。

129 名前:128 [2008/09/07(日) 14:30:04 ]
ついでに読み取り専用属性の操作もできればサイコーです

130 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 14:45:07 ]
please tell ass in Japanese...

Sheets("hoge").Activate
Sheets("hoge").SaveAs "c:\hoge.xlsx", xlWorkbookNormal, , , True


131 名前:128 mailto:sage [2008/09/07(日) 15:15:51 ]
えー、ファイルを開かない状態でアクティブシートを変更したいのです。
そのやり方だとインデックスエラーになっちゃうんですけど。

132 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:26:27 ]
Excelオブジェクト生成
ファイルオープン(非表示)
シートをアクティブにする
保存




133 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:30:41 ]
ここっていちいち一から百まで説明しないといけないから疲れるな
結局ファイルを開かなきゃいけないってことですね。どうもありがとうございました。

134 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:39:47 ]
偉そうに言ってますな w

135 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:45:40 ]
そりゃそうだ。エスパーなんてここにはいない。



136 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:46:46 ]
ここの奴らほとんど、ろくな知識も無いのに
知ったか振っててうざいんだもん
これぐらい言わせなよ

137 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:51:18 ]
うわぁ・・・低脳すぎて煽るきにもならない

138 名前:128 mailto:sage [2008/09/07(日) 15:52:01 ]
あと別におまえらがエスパーである必要はねーけど
言われた事から、相手がなぜそうしたいのか、ではどういう方法が適切かくらい想像しろよ、と思うね
おまえら自分の知ってることが唯一の回答であるようにこじつけてるだけだろ。
そういうのをバカの一つ覚えって言うんだよ。
でも回答ありがとう。じゃね。

139 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:52:32 ]
っていうかxlsファイルを開くのとExcelのGUIを開くのを同じことだと思っている低脳っているんだね

140 名前:>137 mailto:sage [2008/09/07(日) 15:53:30 ]
じゃあ書くなよウスノロw

141 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:53:47 ]
うわぁ・・・ひどい池沼ですね・・・

142 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:55:07 ]
日本語で質問できるようになったら書き込みしような。

143 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:56:22 ]
高卒とかFランは書き込みできないようなフィルタかけてくれよ

144 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:59:21 ]
盛り上がってますね

145 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:01:56 ]
>>133
最低限1から5くらいまで説明しようぜ。
俺らお前のお母さんじゃないんだからよ。



146 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:02:48 ]
というより、
出来ないことは出来ないと説明した上で代替案を示すなら
ここまで荒れないと思うのだが。
条件に反することを回答するからこうなる

147 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:03:39 ]
>>132
でできると思うぜ。






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

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

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