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


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

Excel VBA質問スレ Part12



1 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:07:54 ]
ExcelのVBAに関する質問スレです

前スレ pc12.2ch.net/test/read.cgi/tech/1241885130/

★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)

296 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 13:10:25 ]
ああ、オブジェクトの種類によって効かないやつがあるのか
Rangeならいけるわ

297 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 19:10:58 ]
すみません、ご助言お願いいたします。

OS:Vista、Excel:2007

コンパイルを実行すると
”プロシージャの呼び出し、または引数が不正です”と表記されます。
この際、黄色い帯で示されるエラー部分が、
Public Function Zn(CZn, X, W, b, K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11)
Zn = 2 * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 - K8 * X * W - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4) / _
(K1 * X + ((K1 * X) ^ 2 + 4 * K2 * X * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 _
- K8 * W * X - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4)) ^ 0.5)
End Function

のZnの式の部分です。

色々考えたのですが原因がわからず、試しに、上手くいく類似のプログラムの
Znを代入してみたところ、エラーは出ませんでした。
代用したZnの式は

Zn = 2 * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 - K8 * X * W - K9 * X * W ^ 2) / _
(K1 * X + ((K1 * X) ^ 2 + 4 * K2 * X * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 _
- K8 * W * X - K9 * X * W ^ 2)) ^ 0.5)
です。
(K10とK12の項を削除したものです)

最初のZn式がエラーを示す原因等、ご助言お願いいたします。



298 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 19:48:59 ]
0.5

299 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:09:56 ]
^ 0.5

300 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:15:46 ]
>>298
>>299
早速のご助言ありがとうございます。

0.5とは、最後のですよね。
ただ、エラーが出るZn式にも、出ないZn式にも含まれているのですが・・・?

301 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:28:09 ]
そのエクセルほしいな
2kしかもっていないけど、基本的に^は整数しか出来ない

Zn = Application.Power(〜〜 ,0.5)
で代用

302 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:38:13 ]
>>301
細かいけど前に「2 *」が抜けてないか?

303 名前:302 mailto:sage [2009/07/30(木) 20:40:41 ]
不足指摘してるのもまだ不足してたな
さすがにそこまで応用力のないやつはいないか

304 名前:297 mailto:sage [2009/07/30(木) 20:46:40 ]
>>301
ありがとうございます!
恥ずかしながら、301さんのスレを見て初めてVBAでワークシート関数の利用が
出来ることを知りました。。。

ほしいというのは、やはりここに書いただけではエラーの理由の解明が
難しいということでしょうか?





305 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 21:08:48 ]
いや、全部確固内に記述しちゃえばよかろ

306 名前:297 mailto:sage [2009/07/30(木) 21:46:24 ]
アドバイス頂いた方法でやってみたのですが、だめでした

最初のZnの式を
Zn = 2 * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 - K8 * X * W - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4) / _
(K1 * X + Application.WorksheetFunction.Power(((K1 * X) ^ 2 + 4 * K2 * X * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 _
- K8 * W * X - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4)), 0.5))
としたのですが、
「worksheetFunctionクラスのPowerプロパティを取得できません」
とのことです。。。

307 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 22:01:33 ]
いろいろ変えてみたら

308 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 22:24:23 ]
これなら通るんだよね。

Sub test()
Debug.Print 2 * Zn(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) ^ 0.5
End Sub
Public Function Zn(CZn, X, W, b, K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11)
Zn = (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 - K8 * X * W - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4) / _
(K1 * X + ((K1 * X) ^ 2 + 4 * K2 * X * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 _
- K8 * W * X - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4)))
End Function

309 名前:デフォルトの名無しさん [2009/07/31(金) 00:02:27 ]

Excel.Range("Sheet1!$A$1").Find(What:="")

What:= ←ここに255文字以上入れると、動かんのだが。



310 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 00:36:05 ]
Sub test()
Dim HashedData
Set HashedData = CreateObject("CAPICOM.HashedData")
HashedData.Algorithm = CAPICOM_HASH_ALGORITHM_SHA1
HashedData.Hash "abc123あいう"
MsgBox HashedData.Value
End Sub

暗号化プログラムを作っているのですが、予定では
「f95439120bf5c5d2b962cbe3a530199226f1ed2e」
と出る予定だったはずなのに違う値が出て来るヽ(`Д´)ノ

311 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 01:21:08 ]
>>310
半角のみと全角のみで確認

312 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 07:04:59 ]
Excelを勉強したくてスレ検索しました
ここがヒットしました。普通のExcelとExcel VBAとの違いはなんですか?
エクセルとは、プログラムしたエクセルに同じ動作を繰り返させるものだとホームページで読みました。

313 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 07:24:10 ]
>>312
>普通のExcelとExcel VBAとの違い
比較する対象ではありません。
ExcelはExcel VBAを含みます。
しかし、例外もあり、含まないExcelもあります。

>エクセルとは、プログラムしたエクセルに同じ動作を繰り返させるもの
再帰的な定義ですね。
その「ホームページ」には「プログラムしたエクセル」の定義は書いてありましたか?

314 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 07:41:40 ]
暗号化なんてやったことないわ



315 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 09:58:31 ]
>>297
Functionの最初に
Debug.Print CZn; X; W; b; K1; K2; K3; K4; K5; K6; K7; K8; K9; K10; K11
ってのを追加して、エラーが出た時のパラメータを教えて

316 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:36:30 ]
>>297
マイナスの平方根をとろうとしてる
実数解を期待してるなら、式かパラメータかどっちかがおかしい

317 名前:デフォルトの名無しさん [2009/07/31(金) 14:06:05 ]
Excel2003使用

sheet1にある表のB列に「特定」があれば、その行をコピーして
sheet2の2行目から下へ順番に貼り付けたいのですが、
sheet2への貼り付けがうまくいきません。

Rend = Range("c65536").End(xlUp).Row
For i = 7 To Rend
If Range("b" & i) = "特定" Then
Worksheets("sheet1").Rows(i).Select
Selection.Rows.Copy
Worksheets("sheet2").Rows(i).PasteSpecial
End If
Next

Worksheets("sheet2").Rows(i).PasteSpecialの変数(i)を
Rend2=Range("a2").end(xldown).offset(1,0)を作って
それを当てはめてもうまくいきません。
解決方法を教えてください

318 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 14:46:12 ]
なにがどううまく行かないのかと


シート2のセルをカウントする変数を組み込めばいいんじゃね

319 名前:317 [2009/07/31(金) 15:19:14 ]
>>272
ありがとうございます。^^
おかげさまで解決しました。

320 名前:デフォルトの名無しさん [2009/07/31(金) 16:17:05 ]
【回答は】Excel VBA質問スルナ Part13【ググレ】

321 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 20:03:47 ]
>>317
おそらく、sheet2をアクティブにしていないから

322 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 07:56:11 ]
すいません。
一般的な関数(例えばsinなど)では
EXCELのセル上で 『  =sin(  』を入力すると
入力セルの近くに『 SIN(数値) 』というクイックヒントがでます。
しかしVBAでユーザー定義関数をつくり、
同様にセル上で作成した関数を入力してもクイックヒントが出てきません。
どのようにすれば自作の関数でもクイックヒントがでるようになるのでしょうか。
教えてください。
Excel2003、WindowsXPです。


323 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 08:50:04 ]
ヒントはヒントとして定義しなきゃ出ないよ
Functipnプロシージャを書いただけじゃ、関数と引数を定義しただけだ

とはいえ、Excelでユーザー定義関数のヒントを定義するのは面倒なので
「関数の引数」ダイアログを使う方法をオススメする
こちらは定義というか宣言した引数がそのまま出てくる

324 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 13:32:00 ]
WindowsXP
Excel2000で作っています。

url = "http://・・・/a.html"
Workbooks.Open Filename:=url

という形で、社内のイントラネット上のhtmlファイルをブックとして開きたいのですが、
インターネットのファイルや、PC内のファイルは開けるのに
イントラネット上のファイルは開けません。
なにか、特別な認証が必要なのでしょうか?



325 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 18:02:08 ]
社内イントラ上のhtmlファイルの参照を、http://・・・としてるの?
それだと開くわけないよね。


326 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 18:46:15 ]
んなわけなかろ






いや端末アドレスがそうなってるなら問題ないだろ

327 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 19:07:40 ]
IEや他のブラウザでurl = "http://・・・/a.html"が開けるかどうかだね

328 名前:324 mailto:sage [2009/08/02(日) 00:05:27 ]
みなさんありがとうございます。

IEなどのブラウザでは開けます。
ちなみに、イントラネットのファイルのアドレスは
192.168.1.10/〜/〜.html
みたいにIPアドレスになってます。

329 名前:デフォルトの名無しさん mailto:age [2009/08/02(日) 22:32:07 ]
cells(x,y)=""
cells(x,y)=Empty

の違いってなんでしょうか?

330 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 03:28:45 ]
>>329
EmptyはVariant型で「変数が初期化されていない」という意味の特殊な値。
"" はString型で長さが0の文字列。ただしCellsに代入した場合は自動的にEmptyに変換されるので
結果は同じになる。

331 名前:322 mailto:sage [2009/08/03(月) 05:41:14 ]
>>323
ありがとうございます。
「関数の引数」ダイアログ理解しました。
しかしできることなら、やはりヒントを定義したいのですが
その場合はどのような方法でやればいいのでしょうか?


332 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 06:37:59 ]
君には無理だ。やめておけ。

333 名前:デフォルトの名無しさん [2009/08/03(月) 14:57:23 ]
シートを保存する時に書式を含む値のみを保存しているのですが、条件付き書式も
通常の書式に変換(&削除)したいのですが、何か良い方法がありますでしょうか?

334 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 17:31:03 ]
>>333
新規のシートに
はりた



335 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 17:32:32 ]
新規のシートに
貼りつけて保存すればいんじゃね

336 名前:デフォルトの名無しさん [2009/08/03(月) 19:54:43 ]
OS -> Windows Vista
Excel Office2007

ある文字列をカウントする関数Function()を作ってみたけど
参照しているセルの値が変わっても自動計算されません。
なぜでしょうか?

Excelの自動計算はONにしてます。
また、マクロも有効になっています。
数式バーにカーソルを合わせてEnterキーを押すと
そのセルだけが更新されます。


337 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:45:52 ]
参照式とFuncitonの内容を書きなさい。
それだけの情報だとなんともいえない。

338 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 00:23:59 ]
あるシートに別ファイルシートのイベントマクロをコピーしたいのですが、
たくさんのシートがあるので、手作業でなく、コピーそのものをマクロ化する方法を教えて下さい。

339 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 00:43:47 ]
>>338
モジュールのインポート、エクスポート

340 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 06:17:42 ]
>>336
それだけの情報だとApplication.Volatile使えとしかいえない。

>>338
VB言語でVBプロジェクトを弄る方法は、表計算(Excel)とは関係ないので
>>339の方法がお気に召さないならそれ以上はスレ違いって話になる

しかし、あるブックの複数シートで同一イベントを起こしたい場合
シートモジュールでのWorksheet_Changeの変わりに
ブックモジュールでWorkbook_SheetChange使えば良いだけの話だがな

341 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 08:57:24 ]
はぁ?
VBEこそ、もろこのスレ向きの話題だろうが

342 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:03:08 ]
>341

ハァ?
(゚Д゚)y─┛~~ 

343 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:56:25 ]
Microsoft Visual Basic for Applications Extensibilityを参照してImportで一括インポート
Application.VBE.を使用して挿入

好きなほうをどうぞ

344 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 13:47:39 ]
>>336
なんでCOUNTIFがあるのに自作するのか分らんが、関数の参照してるセルはきちんと引数に入れてるのか?
一部の揮発性関数をのぞいて、基本的に関数は引数が変化したときだけ自動では再計算する。
=COUNTIF(A1:A10,C1)ならA1:A10のいずれかのセル、またはC1が変更されたときだけだ。
だから自分で関数を作るときも範囲と検査値の二つの引数を入れるように作らないと駄目だ。
Application.Volatileで逃げるのは間違った解決策だから気をつけろ。



345 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 15:25:14 ]
URLをページタイトルに置換するスクリプトなのですが動作が不安定です。
どこを修正したらよいでしょうか。どなたご教授お願いします。

Sub GetWebPageTitle()

Dim objIE As Object
Dim lngLastRow As Long
Dim i As Long
Dim strURL As String
On Error GoTo ErrHandler

'IEのオブジェクトを作る
Set objIE = CreateObject("InternetExplorer.Application")

'最終行取得
lngLastRow = Me.Range("A65536").End(xlUp).Row

For i = 1 To lngLastRow
strURL = Me.Cells(i, "A").Value
objIE.Navigate strURL
'表示完了まで待つ
Do While objIE.Busy = True And objIE.ReadyState <> 4
DoEvents
Loop
Me.Cells(i, "B").Value = objIE.Document.Title
Next i
objIE.Quit
MsgBox "タイトル取得完了"

Finally:

346 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 15:25:55 ]
>>345の続き

Set objIE = Nothing
Exit Sub

ErrHandler:
With Err
MsgBox .Number & vbCrLf & .Description, vbCritical
End With
Resume Finally

End Sub

347 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 15:46:44 ]
あ、そっかFalseにするんだ。
自己解決しました。
すみません。

348 名前:338 mailto:sage [2009/08/04(火) 19:41:57 ]
>>339-343

ありがとうございます。
インポートは、シートでなくmodule にくっついてしまいだめでした。
教えていただいた方法を順に試してみたいと思います。

excel のvbaしかやったこと無いので、イベントをしらべだしてから
VBEなどがあるのを最近知った初心者です。

349 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:55:33 ]
            , -'"´  ̄`丶、_
           ,.∩         `ヽ
         〃∪'´ ̄`二二人\  ヽ
         | ツ´ ̄ ̄ ̄ ̄´ ヾ ヽ. ',
         |ハ ,ニ、   ,. - 、 | | | l |
         | ハ ィハ     ,二ヽ. | | | | | 同じ板にコピペするとそのままだけど、
         | | | じ'   |トJ〉  /)} l | 違う板にコピペすると鬼のような怖い顔
         | ハ  、'_,   ̄,, 厶イ川| に変わる摩訶不思議な佳子様コピペ。
         l l /\    .. イV\川 |
         ,' l l ,イ `l ̄´ /   /ヽl l
         l | l ハ  `メ、    〃  ヽヽ、__ノ
         l  ∨ └‐イ「ト--ァ'´     ハヽ__ノ
         ヽ/  }  l」」 /     / }`ー
          〈_n| 八   / /     /ノ
          〈二二人 c /\/ / , イ
           /  /厂 /\__>< {_


350 名前:336 [2009/08/04(火) 20:03:33 ]
Excelのセキュリティの設定で常にマクロを有効にするか
確認するように変更したら自動計算されました。

>>344
複数の検索値でクロス集計するようにしています。
確かに範囲と検索値を引数に入れるようにしたほうがいいですね。
ありがとうございます。

351 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 07:54:36 ]
まさかピボットテーブルでやった方が簡単なことを関数、しかも自作の関数でやってるんジャマイカ?

352 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:52:18 ]
セルをビットに見立てて、エクセルで扱えないデータを格納・演算出来ることに気が付いたんだけど


そもそも使わないんだよな……無意味なことをした

353 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 08:26:34 ]
テンプレの使うということに順していないので、スレ違いな質問だったらすいません。

今、XPのExcel2003のVBAの勉強をして二日目です。(プログラム経験などは一切なし)
参考にしているのは下記アドレスのページで第6章の途中まで進めました。
excelvba.pc-users.net/
他にも勉強するのにいいサイトがありましたらご教示お願いできないでしょうか?
個人的には動的? なツールのような使い方(任意の桁や条件の数字だけを抽出のような感じです)や
共通作業のソフト化(今は仕事でExcelを使うことはないですが…)を出来るようになるのが理想です。

354 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 12:43:01 ]
そういうことがやりたいならVBAではなくVBの勉強した方がいいね

しかし、サイト紹介もVBの話もスレ違いだから自分で探しな
VBA分野で具体的な質問が有ったらまたおいで



355 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 22:15:56 ]
抽出結果をExcelに出力するならVBAでいいよ。

356 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 22:19:36 ]
>>57

Open "ABC" & Str(i) & ".txt"

とした方がいいのでは?

357 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 22:54:33 ]
>>353
何で最近のゆとりは本買わないんだ。
本買え本。
しょーもないサイトを探し回る時間の損失に比べたら、2,3冊の本代なんて安いもんだ。

358 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 00:42:24 ]
保護をかけた状態でロックを外したセルへの移動が
一部出来なくなってしまいました。
→と←の移動は効くんですが、↑と↓の移動を受け付けてくれません。
ScrollLockやロック外し忘れでは無いと思います。
あと、セルをクリックするとセルの周りに太枠が出るじゃないですか?
あれも時々出なくなりました。
この現象が起こるのは今の所1つのブックだけです。

調べてみたんですが、何が原因かさっぱりわかりません。

359 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 00:44:05 ]
途中で送信してしまったorz
原因分かる人いたら教えて下さい。

360 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 06:36:21 ]
レスありがとうございます。

>>354-355
もし仮に目的がVBでないと難しいことが分かっても、VBAで覚えたことは使えると思うので
とりあえずこのままVBAを学んでみようと思います。

>>357
確かにそうですね。
今日にでも書店でよさげな本を探してみます。

361 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 22:16:53 ]
ここで本とかを買った人って、何の本買ったのか気になる。
俺は、よく分かるプログラミングVBA 基礎・関数・応用
(大村あつし)の奴を3冊買ったんだけど。

362 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:49:18 ]
>>338
シートにイベントマクロをセットする方法がわかりましたのでご参考までに。
みなさまありがとうございました。

セットするマクロ
'チャートシート cost に mouseupイベントをセットする例
Sub mouseup_set()
Dim i As Long
With ActiveWorkbook.VBProject
For i = 1 To .VBComponents.Count
If Mid(.VBComponents(i).Name, 1, 5) = "Graph" Then
If .VBComponents(i).Properties("Name") = "cost" Then
.VBComponents(i).CodeModule.AddFromFile "D:\vbadir\mouseup.bas"
Exit For
End If
End If
Next i
End With
End Sub

'mouseup.bas の内容
Private Sub Chart_MouseUp(ByVal Button As Long, _
ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
Dim ElemID As Long, Arg1 As Long, Arg2 As Long
' ここにMouseUp時の処理記述
End Sub

以上

363 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:50:19 ]
>>362
忘れた、追記
windows XP, excel2007 です。

364 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 00:02:16 ]
>>362
私本管理のDB見たら、Excel関連だけで\30kは使ってた
OS関係やプログラム全般と合わせたら軽く\100kは超えてる
俺プログラマでも何でもない文系人間なのにww



365 名前:デフォルトの名無しさん [2009/08/09(日) 00:27:30 ]
aが0.01、bが0.01の状態で、
b=b+a
としてセルに代入すると
0.010.01となってしまいます
何がいけないんでしょうか

366 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 01:12:55 ]
>>365
a、bが文字列になってる
数値に変換を

367 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 08:18:40 ]
>>361
大村あつしの本は、知識0の人になら僅かな足しにはなるが
他と比べて有用といえる物では無いな

368 名前:デフォルトの名無しさん [2009/08/09(日) 11:35:42 ]
sheet1上でマクロを使ってて、sheet2の中の値を取ってくるとき、
わざわざsheet2をアクティベートしてまた戻す、という方法じゃないとだめ?
住所みたいにsheet2;cells(3,3)みたく指定できませんか?

369 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:46:33 ]
セルの値ならmacro4.0うんたらかんたら

370 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:46:50 ]
>>368
Function GetCell(WS As String, row As Long, col As Long) As Variant
 GetCell = Worksheets(WS).Cells(row, col).Value
End Function

とかじゃだめなの?


371 名前:デフォルトの名無しさん [2009/08/09(日) 11:52:52 ]
>>370
ふむふむ。自作関数使ったことないんですが、やってみます!

それから、論理記号の∃(存在)って、for-next文で代替するしかないんでしょうか?

たとえば、
If A1からA10の間に100以上の値があれば
Then
みたいに使いたいんですが


372 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:56:16 ]
>>361
パーフェクトマスターとかいうでかい本一冊買ったくらいかなぁ

ただ、本分厚すぎて面倒なんで、基本的にExcel内のヘルプに頼ってる。

373 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 12:34:08 ]
>>368
> 住所みたいにsheet2;cells(3,3)みたく指定できませんか?
sheet2.cells(3,3)ではあかんの?

>>371はforで代用が一般的だと思う
ワークシート関数のMAXとかで一発で済ませてもいいし

374 名前:デフォルトの名無しさん [2009/08/09(日) 13:13:44 ]
max(Sheet2.Cells(s, 4) : sheet2.Cells(s+e,4))
でやったらエラーでした。
cellsで範囲指定するのはどうやるんでしょか?




375 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:16:11 ]
どこまで続けるんだよ
もういいだろ

376 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:19:20 ]
>>374
セル範囲の指定はRange
worksheetfunction.max(Range(Sheet2.Cells(s, 4),sheet2.Cells(s+e,4)))

377 名前:デフォルトの名無しさん [2009/08/09(日) 13:20:50 ]
ありがとうございました。
助かりました。
たぶん10分後にまた何か質問します。


378 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:23:27 ]
少しは自分で考えろw


379 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:30:36 ]
セルの指定もできずになぜここに来るかとも思うけれど
他に適当なスレもないしスレ違いすぎってこともないから
まあ夏休み中はこんな流れでもいいんでない?
なぜなに質問コーナーみたいなかんじで

380 名前:デフォルトの名無しさん [2009/08/09(日) 13:34:30 ]
a=inputbox("繰り返しの数")
for x=0 to a
next x

とするとfor文が無視されるんですが、変数をtoの後に持ってくることはできないんでしょうか?


381 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:39:22 ]
>>380
できるよ
aに1以上の数がはいってれば無視されないはず

382 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:41:27 ]
a=inputbox("繰り返しの数")
for x=0 to a
msgbox x
next x

でやってみ?無視されてないから。

383 名前:デフォルトの名無しさん [2009/08/09(日) 13:56:44 ]
a=inputbox("繰り返しの数")
for x=0 to a
sheet1.cells(2,2).value=w
next x

にしても無反応なのであった;;
別の場所に問題あるのかな。


384 名前:デフォルトの名無しさん [2009/08/09(日) 13:57:35 ]
wじゃない、xでした



385 名前:デフォルトの名無しさん [2009/08/09(日) 14:03:39 ]
もしかして・・・別のsub ... end sub の中でおこなったinputboxの値は有効じゃない!?

386 名前:デフォルトの名無しさん [2009/08/09(日) 14:06:25 ]
やべぇ自分で気づいた俺天才!

387 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:07:07 ]
>>385
アホwそれを先に言え

388 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:13:33 ]
すげえことにきがついた・・・
サブを呼び出すときに変数?に戻る数を入れてやればいいんじゃね・・・?

389 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:54:04 ]
先読み回答しとくと、staticでググレ。

390 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:34:23 ]
>>389
そのレスを>>380の段階で付けられるようになれば神なんだろうなー
俺にはまだまだ無理だ

391 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:24:52 ]
で、forが実行されないってのは何よ
シートで見たいなら
for x=0 to a
cells(x.1)=x
next
とか書かないとわからないぞ

392 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 23:50:59 ]
forが実行されないのは

a<0

だからだと思う

例えばaがstring型だとか

393 名前:デフォルトの名無しさん [2009/08/10(月) 00:46:24 ]
VBAで作成したCSVファイルを富士通系汎用機(EBCDIC)に送信する
ということをやりたいのですが、
日本語全角文字を認識させるために、シフトイン、シフトアウト
というコードを全角文字の前後に付与する必要があるらしいのです。
このシフトイン、シフトアウトをVBAでファイルに書き出すことは
できるのでしょうか?

シフトイン、シフトアウトは、16進数で28H,29Hという記述は見つけたのですが
よくわかりません。

知ってる方いらっしゃいませんか? m−O−m
WindowsXP、EXCELは2003です。

394 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 00:52:21 ]
全角絵文字がキモイ



395 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 02:25:59 ]
それより日本語全角文字の文字コード分ってるのか?

396 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 06:42:15 ]
ASCIIだろ






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

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

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