目安箱 IV

目安箱投稿のルールはこちらをごらんください。
ご意見は電子メールで承っています。
「目安箱」は質問禁止です。技術的な質問はそれぞれの質問箱へどうぞ。

迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
4 / 14 ページ ←次へ | 前へ→

【231】Re:ワークシート関数 INDEX VBA
Excel  Jaka  - 08/3/27(木) 10:33 -

引用なし
パスワード
   質問は、エクセル質問箱のほうにお願いします。

はっきりと確認とってないけど。
列数 = WorksheetFunction.Index(Range("A1:B1"), 1, 1)
・ツリー全体表示

【230】ワークシート関数 INDEX VBA
Excel  カオリ  - 08/3/24(月) 14:11 -

引用なし
パスワード
   ワークシート関数についての質問です。
宜しく御願いします。

Sub インデックス()
列数 = WorksheetFunction.Index(Range("A1:B1,1,1"))
End Sub

上記を実行すると、コンパイルエラー引数は省略できませんと
エラーが出てしまいます。
INDEX関数の場合、特殊な宣言が必要なのでしょうか?
・ツリー全体表示

【229】個人マクロブックについて
Excel  Kawaguchi  - 08/3/5(水) 15:12 -

引用なし
パスワード
   aPCで使用している「個人用マクロ」をbPCにコピーして、使用できるようにするには?
・ツリー全体表示

【228】升目入力用ツールバーボタン
Excel  Jaka  - 08/2/20(水) 16:13 -

引用なし
パスワード
   升目入力用って言っても。下のような特殊文字ですけど。
記号だから升目作成時にあったら便利かな?って程度ですけど。

┼、┴、┬、┤、├、┘、└、┌、┐、│、─

尚、最終的な使い方のコードは自分で付け加えてください。
セルに1文字の入力じゃーあまり使わないだろうから....。
引数持たせたボタンの使い方1って事で。


Sub 升目文字()
  Const CMBerNm As String = "マス目バー"
  Dim MasBar As CommandBar, MojTB As Variant
  Dim MJSt As String, i As Long

  On Error Resume Next
  Application.CommandBars(CMBerNm).Delete
  On Error GoTo 0
 
  MojTB = Array(9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532)
 
  Set MasBar = Application.CommandBars.Add(Name:=CMBerNm, temporary:=True)
  Application.CommandBars(CMBerNm).Visible = True
  With MasBar
   For i = 0 To UBound(MojTB)
     MJSt = ChrW(MojTB(i))
     With .Controls.Add(Type:=msoControlButton, Before:=1)
       .Style = msoButtonCaption
       .OnAction = "'マス目文字(" & MojTB(i) & ")'"
       .TooltipText = MJSt
       .Caption = MJSt
     End With
   Next
  End With
  MojTB = Empty
End Sub

Sub マス目文字(引数 As Long)
  MsgBox ChrW(引数)
End Sub
・ツリー全体表示

【227】Re:祝日表をまとめてみた。
全般  VBWASURETA  - 08/1/24(木) 9:57 -

引用なし
パスワード
   ▼Jaka さん:

こんにちは。
因みに曜日は簡単に取得できたりします。
もしかすると、知っておられるかも知れませんけど^^;

Dim WeekDay As String
WeekDay = Format(Now(), "aaa")

これはアクセス、エクセル、VB共通です。


但しエクセルのシート上の関数は

=Text(Now,"aaa")

になる特殊な場合もあります。
・ツリー全体表示

【226】質問は、エクセル質問箱方へお願いします。
Excel  Jaka  - 08/1/9(水) 9:28 -

引用なし
パスワード
   すみません。
質問は、ここでなくエクセル質問箱の方にお願いします。
・ツリー全体表示

【225】数字をアルファベット表記に変換したい。
Excel  (。。j)  - 08/1/8(火) 13:05 -

引用なし
パスワード
   お世話になっております。

海外に送金をしたいのですが、必要書類の中に金額を
アルファベット表示で記載しなければならないところが
あり、EXCELで雛形を作っておきたいと考えてます。

例えば、セルの中の表記が JPY 123,456,789.- だったら 
Japenese yen one hundred twenty three billion four hundred fifty six thousand seven hundred eighty nine only

もしこれが米ドルだったら
U.S. Dollar one hundred twenty…以下同文。

通貨や数字が変わっても上手く変換する方法はありますでしょうか?
・ツリー全体表示

【224】4.0マクロについて2
Excel  Jaka  - 07/12/26(水) 14:22 -

引用なし
パスワード
   16、
●セルの値参照

--------------------
マクロ名
=Sheet1!B5
=ALERT(A17,2)
=RETURN()
--------------------

別ブックの場合
--------------------
マクロ名
=SET.NAME("BK","[Book1]")
=SET.NAME("SH","Sheet2!")
=SET.NAME("CL","E")
=SET.NAME("RW",3)
=SET.NAME("Ans",INDIRECT(BK & SH & CL & Rw)) '参照先ブックが開いていることが条件(A1形式)
=ALERT(Ans,2)
=RETURN()
--------------------


17、
●ループ処理

--------------------Sheet2のB5:B10に連番を書き込む。
ループ1
=SET.NAME("CT",0)
=FOR.CELL("vv",Sheet2!B5:B10, )
=  SET.NAME("CT",CT+1)
=  FORMULA(CT,vv)
=NEXT()
=RETURN()

--------------------
現代版風で書くと。
CT= 0
For Each vv In Sheets("Sheet2").Range("B5:B10")
  CT = CT + 1
  vv.Value = CT
Next

--------------------Sheet2のE1から1行おきに連番を書きこむ。
ループ2
=SET.NAME("SH","Sheet2")
=SET.NAME("Cnt",0)
=FOR("Rw",1,20, 2)
=  SET.NAME("Cnt",Cnt+1)
=  FORMULA("No" & Cnt,SH & "!R" & Rw & "C5")
=NEXT()
=RETURN()
--------------------
現代版風で書くと
Ct = 0
For i = 1 To 20 Step 2
  Ct = Ct + 1
  Sheets("Sheet2").Cells(i, 5).Value = "No" & Ct
Next


18、
●サブルーチン

Sheet2!A1:A10に10010、10020、10030・・・10100
まで記入後、最後にメッセージ。

--------------------
A1 サブルーチン
A2 =SET.NAME("Cnt",10000)
A3 =FOR.CELL("Cel",Sheet2!A1:A10, )
A4 =  Macro1!A12()
A5 =  FORMULA(Cnt,Cel)
A6 =NEXT()
A7 =ALERT(Cnt,2)
A8 =RETURN()


A11 マクロ名
A12 =SET.NAME("Cnt",Cnt+10)
A13 =RETURN()
--------------------


19、
●シートの移動

Sheet1を左から4番目に移動
=WORKBOOK.ADD("Sheet1",,4)

アクティブブックSheet1をBook2の4番目に移動。(同名チェックは解らず。)
=WORKBOOK.ADD("Sheet1","Book2",4)


20、
●メモ帳に貼り付け

--------------------
プログラム名
=COPY("Sheet1!R5C1:R29C10")     Sheet1!A5:J29までコピー
=EXEC("C:\WINNT\notepad.exe",1)   メモ帳起動(処理後の後片付けは解らず。)
=SEND.KEYS("^v")          SendKey技で、貼り付け
=CANCEL.COPY()           コピーモード解除
=RETURN()
--------------------
因みにメモ帳の場所は、Win2000での場合。


21、
●画面更新中止

=ECHO(FALSE)

解除は、TRUE


22、
●選択した範囲

=SELECTION()

--------------------
選択した範囲をループ
=FOR.CELL("CEL",SELECTION(), )
=  ALERT(CEL,2)
=NEXT()
=RETURN()
--------------------


23、
●最後のセル選択

--------------------
シート1のA列データ最後セル選択
=ACTIVATE("Sheet1")
=SELECT("R1C1")
=SELECT.END(4)
=RETURN()
--------------------
※セルを選択しない方法は解りません。

SELECT.ENDの引数
1=ToLeft
2=ToRight
3=ToUp
4=ToDown


○例1
--------------------(Sheet1B列)
最後のセル番地ToDown(マクロシートから実行するとして)
=ECHO(FALSE)           ← TRUEにするとなぜかチラつく
=SET.NAME("SHNm",GET.DOCUMENT(1))
=ACTIVATE("Sheet1")
=SELECT("R1C2")
=SELECT.END(4)
=SET.NAME("ACELR",ROW(ACTIVE.CELL()))
=SET.NAME("ACELL",COLUMN(ACTIVE.CELL()))
=ACTIVATE(SHNm)
=ALERT("最後の行 " & ACELR & CHAR(13) & "列 " & ACELL,2)
=RETURN()
--------------------

○例2
--------------------(Sheet1B列)
最後のセル番地ToUp(マクロシートから実行するとして)
=ECHO(FALSE)
SHNm=GET.DOCUMENT(1)
=ACTIVATE("Sheet1")
ACSh=ACTIVE.CELL()
=SELECT("R65536C2")
=SELECT.END(3)
=SET.NAME("ACELR",ROW(ACTIVE.CELL()))
=SET.NAME("ACELL",COLUMN(ACTIVE.CELL()))
=SELECT(ACSh)
=ACTIVATE(SHNm)
    '← =ECHO(TRUE) をいれると、若干チラつく上に、
    '終了後のスクロールバーの位置が気に食わない。
=ALERT("最後の行 " & ACELR & CHAR(13) & "列 " & ACELL,2)
=RETURN()
--------------------


24、
●セルの罫線
選択してあるセルが対象(選択しない方法は解らず)

=BORDER(1.,2.,3.,4.,5.,パターン,1.の色,2.の色,3.の色,4.の色,5.の色)

パターンは、無しか網掛けの2種(FALSE or 0 か TRUE or 1)


25、
●セルの色
選択してあるセルが対象(選択しない方法は解らず)

=PATTERNS(パターン,パターンの色の方,セルの色,TRUE)

--------------------
マクロ名
=PATTERNS(1,1,49,TRUE)
=RETURN()
--------------------

パターン            パターンの色     セルの色

0 = パターン無し(色もつかない)0 = 不明黒      0 = パターン無し(色もつかない)
1 = 塗りつぶし         1 = 黒        1 = 黒
2 = 50%灰色           2 = 白        2 = 白
3 = 75%灰色           3 = 赤        3 = 赤
4 = 25%灰色           4 = 明るい緑     4 = 明るい緑
5 = 横 縞           5 = 青        5 = 青
6 = 縦 縞           6 = 黄        6 = 黄
7 = 右下がり斜線 縞      7 = ピンク      7 = ピンク
8 = 左下がり斜線 縞      8 = 水色       8 = 水色
9 = 左下がり斜線 格子     9 = 濃い赤      9 = 濃い赤
10 = 極太線左下がり斜線 格子 10 = 緑        10 = 緑
11 = 実線 横 縞       11 = 濃い青      11=濃い青
12 = 実線 縦 縞       12 = 濃い黄      12=濃い黄
13 = 実線 右下がり斜線 縞  13 = 紫        13=紫
14 = 実線 左下がり斜線 縞  14 = 青緑       14=青緑
15 = 実線 横 格子      15 = 25%灰色     15=25%灰色
16 = 実線 左下がり斜線 格子 16 = 50%灰色     16=たぶん左と同じ
17 = 12.5%灰色        17 = 下2、左1    17=  々
18 = 6.25%灰色        18 = 下2、左2    18=  々
                19 = 下2、左3    19=  々
                20 = 下2、左4    20=  々
                21 = 下2、左5    21=  々
                22 = 下2、左6    22=  々
                23 = 下2、左7    23=  々
                24 = 下2、左8(右1)24=下2、左8(右1)
                25 = 下1、左1    25=たぶん左と同じ
                26 = 下1、左2    26=  々
                27 = 下1、左3    27=  々
                28 = 下1、左4    28=  々
                29 = 下1、左5    29=  々
                30 = 下1、左6    30=  々
                31 = 下1、左7    31=  々
                32 = 下1、左8(右1)32=  々
                33 = スカイブルー   33=  々
                34 = 薄い水色     34=  々
                35 = 薄い緑      35=  々
                36 = 薄い黄      36=  々
                37 = ペールブルー   37=  々
                38 = ローズ      38=  々
                39 = ラベンダー    39=  々
                40 = ベージュ     40=ベージュ
                41 = 薄い青      41=たぶん左と同じ
                42 = アクア      42=  々
                43 = ライム      43=  々
                44 = ゴールド     44=  々
                45 = 薄いオレンジ   45=  々
                46 = オレンジ     46=  々
                47 = ブルーグレー   47=  々
                48 = 40%灰色      48=  々
                49 = 濃い青緑     49=濃い青緑
                50 = シーグリーン   50=シーグリーン
                51 = 濃い緑      51=濃い緑
                52 = オリーブ     52=オリーブ
                53 = 茶        53=茶
                54 = プラム      54=プラム
                55 = インディゴ      55=インディゴ
                56 = 80%灰色     56=80%灰色



ここから、直接コピぺすると
=RETURN()
が無い。とかのエラーになるときがあるみたいです。
フォントの違い?原因不明です。
・ツリー全体表示

【223】4.0マクロについて
Excel  Jaka  - 07/12/26(水) 14:21 -

引用なし
パスワード
   もう少しまとめてからと思いましたが、よく解らないし面倒になってきたので、前にここに載せて消した時とほとんど変わってません。
1度で掲載できないので(10000文字制限、未満でも撥ねられた)2度に分けます。

--------------------
今更って感じもするし、これで何ができるのか良く解りませが、
興味本位で、自分なりに調べてわかったような範囲内での、実に中途半端なものを載せてみます。
あまりまとまっていませんが...。
使う用途は無いと思いますけどね。

4.0マクロって、EXCEL5.0、EXL95のマクロの書き方だと思ってました。
EXCEL5.0のマニュアルは、手元にあってたまに見ているのに、4.0マクロの事が載ってない手抜きマニュアルだ〜、って思っていたから、余計に気づかずにいました。
EXCEL95のマニュアルにも4.0マクロの書き方は載ってなかったような。
5.0も95も今と同じような書き方で、Subがあって、Functionもあります。


参考URL

EXCEL 4.0 マクロについて
ht tp://www.jp-ia.com/ans/file95.html

インストラクターのネタ帳
ht tp://www.relief.jp/itnote/archives/001370.php

マクロを使おう - SELECT 関数
ht tp://support.microsoft.com/default.aspx?scid=kb;ja;410566

マクロを使おう - EXEC 関数
ht tp://support.microsoft.com/default.aspx?scid=kb;ja;410602

マクロを使おう- GET.CELL 関数の応用
ht tp://support.microsoft.com/default.aspx?scid=kb;ja;410576

マクロを使おう − INPUT 関数
ht tp://support.microsoft.com/default.aspx?scid=kb;ja;410556
(ここに書いてあるGOTO文使用の例は、中途半端な説明の為、エラーになって動かない。)

マクロを使おう - FORMULA 関数
ht tp://support.microsoft.com/default.aspx?scid=kb;ja;410481

ここのエクセル質問箱
ht tp://www.vbalab.net/vbaqa/c-board.cgi?page=&no=49560&mode=ntr&id=excel&cmd=jmp

今頃、ここ↑を解析してみてRecord1って、マクロ記録1って事じゃん。って気づきました。
確か、Macのクラリスワークスのマクロ記録もこんな題名で記録されていたような...。
このマクロ記録コードがどこにあるのか見つけられなかったので、編集も何もできませんでした。
コードがあるのかも不明ですが。


コードを書く場所は、マクロシート。
マクロシートは、
Ctrl + F11 か、
Ctrlを押しながら、シートタブ → 挿入 → Excel4.0マクロ
で、作れます。

4.0マクロの実行方法
1、4.0マクロを書いた先頭のセル(プログラム名を書いた方がわかりやすい)、
  A1だったらA1セル、A20だったらA20セルを選択して、
  ツール → マクロ → マクロ から実行する。

2、マクロの先頭セルを右クリック → マクロの実行 でも、
  上と同じマクロの選択ダイアログが表示されます。

3、ボタンからマクロを実行させる場合
  標準モジュール等を使うので、4.0マクロの意味がなくなる感じもしなくはないですが。
  標準モジュールに下記コードを記載後、シートのボタンかツールバーのボタンににマクロ登録。
  (マクロ記録参考)

-----------------
Sub 実行1()
  Application.Run ThisWorkbook.Sheets("Macro1").Range("A1")
End Sub
-----------------

実行したいマクロの先頭セルを選択して実行する場合。
-----------------
Sub 実行2()
  Application.Run ActiveCell
End Sub
-----------------


1、
●メッセージボックスを表示させる。
(なぜ1番初めにメッセージボックスかと言うと、例として結果を表示するために使うから。)

以下のコードをマクロシートA1:A3に。
---------------
マクロ名
=ALERT("あああああ",3)
=RETURN()
---------------

上記コードの実行の仕方(手動)
A1セル(任意につけたマクロ名のところ)を選択して、
ツール → マクロ → マクロ を開くと、
マクロ名に「A1」と表示されてますから、そのまま実行。

B5セルの値を表示させる場合
=ALERT(B5,3)


引数(MsgBoxに当てはめると)
1 = vbInformation + vbOKCancel
2 = vbInformation + vbOKOnly
3 = vbExclamation + vbOKOnly


2、
●シート(Sheet1)の選択

=ACTIVATE("Sheet1")


3、
●Book1のアクティブシートの次のシートを選択

=ACTIVATE.NEXT("Book1")


4、
●次のウィンドウを選択。
次のウィンドウがないと無反応。(開いているブックが2つ以上で使用)

=ACTIVATE.NEXT()


5、
●アクティブセルの行

=ROW(ACTIVE.CELL())

---------------
=ALERT(ROW(ACTIVE.CELL()),2)
=RETURN()
---------------
変数使用
=SET.NAME("変数",ROW(ACTIVE.CELL()))
=ALERT(変数,2)
=RETURN()
---------------

※こういった書き方でも変数として使えるみたいです。
変数=ROW(ACTIVE.CELL())

直接セルを参照させた使用例。(A5:A8に書いたとして)
---------------
マクロ名
=ROW(ACTIVE.CELL())
=ALERT(A6,2)
=RETURN()
---------------


6、
●アクティブセルの列

=COLUMN(ACTIVE.CELL())

---------------
=SET.NAME("変数",COLUMN(ACTIVE.CELL()))
=ALERT(変数,2)
=RETURN()
---------------


7、
●アクティブブック名の取得

---------------
アクティブブック名1
=SET.NAME("BK",GET.DOCUMENT(88))
=ALERT(BK,2)
=RETURN()
---------------
アクティブブック名2
=SET.NAME("BK",GET.CELL(32))
=SET.NAME("BK",MID(BK,2,FIND("]",BK,1)-2))
=ALERT(BK,2)
=RETURN()
---------------
アクティブブック名3
=SET.NAME("BK",GET.DOCUMENT(1))
=SET.NAME("BK",MID(BK,2,FIND("]",BK,1)-2))
=ALERT(BK,2)
=RETURN()
---------------


8、
●アクティブシート名の取得

---------------
アクティブシート名1
=SET.NAME("SH",GET.CELL(32))
=SET.NAME("SH",MID(SH,FIND("]",SH,1)+1,LEN(SH)))
=ALERT(SH,2)
=RETURN()
---------------
アクティブシート名2
=SET.NAME("SH",GET.DOCUMENT(1))
=SET.NAME("SH",MID(SH,FIND("]",SH,1)+1,LEN(SH)))
=ALERT(SH,2)
=RETURN()
---------------


9、
●ブックのパス

---------------
=SET.NAME("PS",GET.DOCUMENT(2))
=ALERT(PS,2)
=RETURN()
---------------


●IF文

---------------A1:A5
IF文1
=SET.NAME("変数",11)
=IF(変数>10,"10より大","10より小")
=ALERT(A3,2)
=RETURN()
---------------
IF文2
=SET.NAME("変数",10)
=IF(変数>10)
=  SET.NAME("比較","10より大")
=ELSE()
=  SET.NAME("比較","10以下")
=END.IF()
=ALERT(比較,2)
=RETURN()
---------------
IF文入れ子
=SET.NAME("変数",10)
=IF(変数>10)
=  SET.NAME("比較","10より大")
=ELSE()
=  IF(変数<10)
=   SET.NAME("比較","10より小")
=  ELSE()
=   SET.NAME("比較","10と同じ")
=  END.IF()
=END.IF()
=ALERT(比較,2)
=RETURN()
---------------
IF文ELSEIF
変数=10
=IF(変数>10)
  比較="10より大"
=ELSE.IF(変数<10)
  比較="10より小"
=ELSE()
  比較="10と同じ"
=END.IF()
=ALERT(比較,2)
=RETURN()
---------------


10、
●インプットボックス

=INPUT("入力してください。"&CHAR(13) &CHAR(13) & "例:あいうえお",3,"タイトル")

INPUTボックスの
"例:あいうえお",3,"タイトル"
        ↑
    この「3」の意味は、まだわかってません。

---------------
マクロ名
=SET.NAME("LF2",CHAR(13) &CHAR(13))
=INPUT("入力してください。"& LF2 & "例:あいうえお",2,"タイトル")
=IF(A3<>FALSE,ALERT(A3,2))
=RETURN()
---------------

=INPUT("XXXX" ,データの種類 [,タイトル] [,初期値][,X座標][,Y座標] [,ヘルプ])

 データの種類

 0  数式
 1  数値
 2  文字列
 4  論理値
 8  セル参照
 16 エラー
 64 配列


11、
●GOTO文

ここの「マクロを使おう − INPUT 関数」の例題が動かない原因がわかりました。
ht tp://support.microsoft.com/default.aspx?scid=kb;ja;410556
例題では説明していませんが、名前定義していないとダメなようです。
名前定義無しの場合、直接セルを指定してやればいい。(A1形式の指定しかダメでした。)

--------------------
マクロシート「Macro1」に

A1  GOTO命令
A2  =SET.NAME("St1",1)
A3  =IF(St1=1,GOTO(A10))
A4  =ALERT("戻った。",3)
A5  =GOTO(Macro2!A1)
A6  =ALERT("終わり。",2)
A7  =RETURN()

A10 MacroEnd
A11 =ALERT("GOTOで、別シーとへ飛んだ先",3)
A12 =GOTO(A4)
A13 =RETURN()

++++++
別のマクロシート「Macro2」に記載

A1  行き先
A2  =ALERT("別シートのマクロ",3)
A3  =GOTO(Macro1!A6)
A3  =RETURN()
--------------------

12、
●Auto_Open、Auto_Close

ブックを開いた時にインプットボックスを表示し、
内容をメッセージボックスで表示。
インプットボックスを表示する前にアラートをはさんでみました。
ついでに、マクロシートのセルF1の内容も表示させると。

--------------
A1 Auto_Open
A2 =ALERT("インプットボックスの起動",1)
A3 =IF(A2=FALSE,GOTO(A6))
A4 =INPUT("入力してください。"&CHAR(13) &CHAR(13) & "例:あいうえお",3,"入力ボックス "&F1)
A5 =IF(A4<>FALSE,ALERT(A4,2))
A6 =RETURN()
--------------

しか〜し、このままブックを保存終了後、再度ブックを開いてもマクロは実行されません。
実行させるようには、上記4.0マクロを書いたシートのマクロの先頭、A1を名前定義で登録する必要があります。

コードを書いたマクロシートのA1セルを選択した状態で、
挿入 → 名前 → 定義 で、開くと名前欄に
「Auto_Open」がありますから、それを追加、OKで閉じます。
これが終わった後、ブックを保存終了して、開きなおすと実行されます。

--------------
Auto_Close
=ALERT("終了します",3)
=RETURN()
--------------
こちらも「Auto_Close」と書いたセルの名前定義が必要


13、
●参照形式の設定
(A1形式に変更しても、セルの選択などはR1C1形式で書かないとエラーになります。用途がわかりません。)

=A1.R1C1(TRUE)  で、A1形式
=A1.R1C1(False)  で、R1C1形式


14、
●応用編1

応用1
--------------------
A1 マクロ名              概要
A2 =SET.NAME("SH",GET.CELL(32))    変数にアクティブブックシート名取得(マクロシートから実行するとして)
                    取得形式は、こんな感じ。「[ブック名]シート名」
A3 =SET.NAME("SH",MID(SH,2,FIND("]",SH,1)-2))  変数SHをブック名だけにする
A4 =ACTIVATE.NEXT(SH)         アクティブブックのアクティブシートの次のシート選択
A5 =SELECT("R5C2:R20C10")       B5:J20セル選択(A1形式は使えない見たい。)
A6 =COPY()              コピー
A7 =WORKBOOK.SELECT("Sheet3")     同ブックSheet3選択
A8 =SELECT("R6C2")          B6選択(貼り付け先の基準セル(左上部分))
A9 =PASTE.SPECIAL(3,1,FALSE,FALSE)  値だけ貼り付け
A10 =CANCEL.COPY()           コピーモード解除
A11 =RETURN()
--------------------

応用2(コピー元を選択しないだけ)
--------------------
A1 マクロ名             概要
A2 =COPY("Sheet1!R5C2:R20C10")    Sheet1!B5:J20をコピー
A3 =WORKBOOK.SELECT("Sheet3")    Sheet3選択
A4 =SELECT("R6C2")           B6選択(貼り付け先の基準セル(左上部分))
A5 =PASTE.SPECIAL(3,1,FALSE,FALSE)  値だけ貼り付け (注)セルを選択しないで貼り付ける方法解らず。
A6 =CANCEL.COPY()           コピーモード解除
A7 =RETURN()
--------------------


15、
●セルに値を入れる

=FORMULA("あいう","!D1")        アクティブシートのD1に「あいう」を書き込む。
=FORMULA("あいう","!R1C4")
=FORMULA("あいう","Sheet1!R3C2")   シート指定の場合。

シート名に変数を使った場合。
=SET.NAME("SH","Sheet1")
=FORMULA("あいう",SH & "!R3C2")
・ツリー全体表示

【222】Unknown
Excel  hipnoj  - 07/12/13(木) 3:13 -

引用なし
パスワード
  
・ツリー全体表示

【221】祝日表をまとめてみた。
Excel  Jaka  - 07/12/6(木) 9:45 -

引用なし
パスワード
   B1に西暦年号が入るとして

B4〜B29
元日
振替
成人の日
建国記念の日
振替
春分日
振替
昭和の日
振替
憲法記念日
みどりの日
こどもの日
振替
海の日
敬老の日
国民の休日
秋分の日
振替
体育の日
文化の日
振替
勤労感謝の日
振替
天皇誕生日
振替
年末年始


C4〜C29
=DATE($B$1,1,1)
=IF(WEEKDAY(C4,1)=1,C4+1,"")
=DATE($B$1,1,IF(2>=WEEKDAY(DATE($B$1,1,1),1),2-WEEKDAY(DATE($B$1,1,1),1)+((2-1)*7)+1,8-WEEKDAY(DATE($B$1,1,1),1)+((2-1)*7)+2))
=DATE($B$1,2,11)
=IF(WEEKDAY(C7,1)=1,C7+1,"")
=DATE($B$1,3,DAY(INT(20.8431+0.242194*($B$1-1980)-INT(($B$1-1980)/4))))
=IF(WEEKDAY(C9,1)=1,C9+1,"")
=DATE($B$1,4,29)
=IF(WEEKDAY(C11,1)=1,C11+1,"")
=DATE($B$1,5,3)
=DATE($B$1,5,4)
=DATE($B$1,5,5)
=IF(WEEKDAY(C15,1)<4,C15+1,"")
=DATE($B$1,7,IF(2>=WEEKDAY(DATE($B$1,7,1),1),2-WEEKDAY(DATE($B$1,7,1),1)+((3-1)*7)+1,8-WEEKDAY(DATE($B$1,7,1),1)+((3-1)*7)+2))
=DATE($B$1,9,IF(2>=WEEKDAY(DATE($B$1,9,1),1),2-WEEKDAY(DATE($B$1,9,1),1)+((3-1)*7)+1,8-WEEKDAY(DATE($B$1,9,1),1)+((3-1)*7)+2))
=IF(WEEKDAY(C20)=4,C20-1,"")
=DATE($B$1,9,DAY(INT(23.2488+0.242194*($B$1-1980)-INT(($B$1-1980)/4))))
=IF(WEEKDAY(C20,1)=1,C20+1,"")
=DATE($B$1,10,IF(2>=WEEKDAY(DATE($B$1,10,1),1),2-WEEKDAY(DATE($B$1,10,1),1)+((2-1)*7)+1,8-WEEKDAY(DATE($B$1,10,1),1)+((2-1)*7)+2))
=DATE($B$1,11,3)
=IF(WEEKDAY(C23,1)=1,C23+1,"")
=DATE($B$1,11,23)
=IF(WEEKDAY(C25,1)=1,C25+1,"")
=DATE($B$1,12,23)
=IF(WEEKDAY(C27,1)=1,C27+1,"")
=DATE($B$1,12,31)
・ツリー全体表示

【220】修正点
Excel  Jaka  - 07/12/5(水) 12:44 -

引用なし
パスワード
   2008年のカレンダーを見て、勘違いしていたところです。

>   Case 5
>     FixHoliday = Array(3, 4, 5)
>     If Weekday(Nen & "/" & Tuki & "/" & FixHoliday(2)) = 1 Then
>      ReDim Preserve FixHoliday(UBound(FixHoliday) + 1)
>      FixHoliday(UBound(FixHoliday)) = Val(FixHoliday(2) + 1)
>     End If

    ↓

   Case 5
     FixHoliday = Array(3, 4, 5)
     If Nen >= 2007 Then
      GWD = 3  '変数 GWDの定義も追加しておいてください。型は、数値型
     Else
      GWD = 1
     End If
     If Weekday(Nen & "/" & Tuki & "/" & 5) <= GWD Then
      ReDim Preserve FixHoliday(UBound(FixHoliday) + 1)
      FixHoliday(UBound(FixHoliday)) = 6
     End If
・ツリー全体表示

【219】Unknown
Excel  Alexghy  - 07/11/16(金) 3:46 -

引用なし
パスワード
  
・ツリー全体表示

【218】コンボボックスやリストボックスに日付や時...
Excel  Jaka  - 07/11/14(水) 15:16 -

引用なし
パスワード
   コンボボックスやリストボックスのRowSourceで、日付や時間の記入されているセルを指定すると、リストは参照セルの表示形式と同じで表示されますが、取得する値は参照しているセルの値(シリアル値)を返します。


例えば、Sheet1A1:A5に日付か時間が入っているものとし(複合可)、
フォーム上に
ComboBox1、CommandButton1、CommandButton2、CommandButton3、
CommandButton、TextBox1 のコントロールがあるとして。
以下のコードを試してみてください。


※ループしてのMe.ComboBox1.AddItemとTextプロパティの使用は、
書きませんでした。
Textプロパティ、セルに表示してあるのと同じ状態を取得するので、
「#######」だった場合、「#######」と取得するから。


************ 参考お試しコード

Const CombRag As String = "Sheet1!A1:A5"

'テキストに書き込み
Private Sub ComboBox1_Change()
 If Me.ComboBox1.ListIndex >= 0 Then
   Me.TextBox1.Value = Me.ComboBox1.List(Me.ComboBox1.ListIndex)
 End If
End Sub

'1、List&Valueプロパティ。
'  セルの値が時間だけの場合は、リストもシリアル値になる。
'  日付の場合は、コントロールパネルの地域の短い方の書式に依存する。
Private Sub CommandButton1_Click()
  Me.ComboBox1.Value = vbNullString
  'RowSourceをListに変える場合は、RowSourceをクリアする。
  Me.ComboBox1.RowSource = vbNullString
  Me.ComboBox1.List = Range(CombRag).Value
End Sub


'2、セルの表示形式のっとって表示。
Private Sub CommandButton2_Click()
  Dim CelFomt As String
  CelFomt = Range(CombRag).Cells(1).NumberFormatLocal
  Me.ComboBox1.Value = vbNullString
  'RowSourceをListに変える場合は、RowSourceをクリアする。
  Me.ComboBox1.RowSource = vbNullString
  Me.ComboBox1.List = Application.Text(Application.Evaluate(CombRag), CelFomt)
End Sub

'3、RowSource、リストの表示はセルの表示形式の通り
'  取得は、セルのシリアル値を取得する。
Private Sub CommandButton3_Click()
  Me.ComboBox1.Value = vbNullString
  Me.ComboBox1.RowSource = CombRag
End Sub

Private Sub CommandButton4_Click()
  If Me.ComboBox1.ListIndex >= 0 Then
   MsgBox Me.ComboBox1.Value & vbLf & _
       Me.ComboBox1.List(Me.ComboBox1.ListIndex)
  End If
End Sub

by Win2000 EXCEL2002SP3 & EXCEL2000SP1

因みに
コントロールパネル地域の短い方の日付の書式はこれで取れます。

MsgBox Format(Date, "Short Date")
・ツリー全体表示

【217】Re:ファイルの追加
Excel  ちょり  - 07/11/12(月) 10:14 -

引用なし
パスワード
   あっ!
ごめんなさい!!
題名の隣のやつをエクセルにすればよいものだと思ってました^^;
・ツリー全体表示

【216】Re:ファイルの追加
Excel  Jaka  - 07/11/9(金) 14:27 -

引用なし
パスワード
   ここは質問するところではないので、
すみませんが、
質問は、エクセル質問箱の方へお願いします。

URL ↓つなげて下さい

htt
p://www.vbalab.net/vbaqa/c-board.cgi?id=excel
(ホームから行った方が簡単ですね。)
・ツリー全体表示

【215】ファイルの追加
Excel  ちょり  - 07/11/8(木) 15:36 -

引用なし
パスワード
    ファイルを開いて、さらに新しいファイルをその表示されているファイルの後ろ(下)に表示したいのですが、どうしても新しいファイルが横に表示されてしまいます。
 また、複数ファイルを同時に開くコードを入力しても、型が違うというエラーが出てしまいます。

 どうか解消法を教えて頂きたいです。
・ツリー全体表示

【214】Re:オートフィルタ解除とずべて表示
Excel  Jaka  - 07/11/1(木) 17:03 -

引用なし
パスワード
   ▼セルの右クリックだけで部分的に全表示にしたい場合。

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim ColC As Range, ColNo As Integer

If ActiveSheet.FilterMode = False Then Exit Sub
With ActiveSheet.AutoFilter
  If Not Application.Intersect(Target, .Range.Rows(1)) Is Nothing Then
   Cancel = True
   For i = 1 To .Filters.Count
     If .Filters.Item(i).On Then
      ColNo = .Range.Cells(i).EntireColumn.Column
      Set ColC = Application.Intersect(Target, Columns(ColNo))
      If Not ColC Is Nothing Then
        MsgBox "フィルター範囲 " & i & " 列目解除" & vbLf & _
           Chr(.Range.Cells(1).Column + i + 63) & " 列"
            '↑テスト用確認の為、Z列までがまともに表示される。AA列以降は未対応。
        .Range.Cells(1).AutoFilter Field:=i
        Set ColC = Nothing
        '↓フィルタされた順番はわかりません。コメントにして複数に対応させるときは注意。
        Exit Sub
      End If
     End If
   Next
  End If
End With
End Sub
・ツリー全体表示

【213】Unknown
Excel  dotarull  - 07/10/22(月) 22:05 -

引用なし
パスワード
  
・ツリー全体表示

【212】Unknown
全般  dotarull  - 07/10/22(月) 14:54 -

引用なし
パスワード
   [*map/map_index_cnx2_14.txt||10||r||1|| @]
・ツリー全体表示

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
4 / 14 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:   
0
(SS)C-BOARD v3.8 is Free