Quantcast
Channel: 午後わてんのブログ
Viewing all 420 articles
Browse latest View live

VBAでテキストボックスのフォント指定は難しかった

$
0
0
選択セルの値を使ってテキストボックスを作成するマクロを書いていて
フォントの指定が難しかったのでメモ

イメージ 1
テキストボックスを作りたいセルを選択してマクロを実行

イメージ 2
セルの値が入ったテキストボックスが作成された
これが求めていた結果、ここまで難しかった

期待はずれな例
イメージ 3
日本語の文字だけが指定したフォントにならずに
MS ゴシックになっていた


正解のフォントの指定の仕方は
charaCount=Shape.TextFrame2.TextRange.Characters.Count'文字数カウント
Shape.TextFrame2.TextRange.Characters(1, charaCount).Font.Name = フォント名 '英数字用
Shape.TextFrame2.TextRange.Characters(1, charaCount).Font.NameFarEast = フォント名 '日本語用

TextFrame2のTextRangeのCharactersで文字列のどこからどこまでかを指定していして
ここでは全部の文字だから1番目の文字から文字数(最後の文字)を指定して
ここでやっとフォントの指定のFont.Nameでフォントを指定する
しかも
Font.Nameっていう半角英数字用と
Font.NameFarEastっていう日本語用
この2つに指定しなければならない

Excel 2007 のテキスト ボックスで使用するフォントの種類をマクロで変更できない
マイクロソフトのここを見ると現在調査中ってあるけど
2007年11月から何年調査しているんだろうって、エクセル2007のバグか仕様みたい

回避策としてFont.NameFarEastっていう日本語用だけを指定すればいいように書いてあるけど、フォントによっては両方共指定しないとおかしくなる

紛らわしかったのがテキストボックスや図形のフォントの指定ができそうなところがあちこちにあること
Shape.TextEffect.FontName
Shape.TextFrame.Characters.Font.Name
Shape.TextFrame.Characters(1,n).Font.Name
Shape.TextFrame2.Characters.Font.Name
Shape.TextFrame2.Characters(1,n).Font.Name
TextBox.Font.Name
これ全部できそうに見えてできないもので
正解は
Shape.TextFrame2.Characters(1,n).Font.Name
Shape.TextFrame2.Characters(1,n).Font.NameFarEast
この2つ、両方必要

あとエクセル2007は図形関係のマクロの記録ができない!
なので手動で変更してどんな動きしているのか見ることもできず
そんなこんなで時間がかかった

セルのフォント指定は
Range.Font.Name
でできるんだからテキストボックスとかの図形も
Shape.Font.Name
これでできればわかりやすいのになあ
せめてShape.TextFrame.Font.Nameとか



選択セルの値でテキストボックスを作成するマクロ

Sub SelectionValueTextBox選択セルの値でテキストボックスを作成する()
    On Error Resume Next
    Dim r As Range
    Dim s As Shape
    Dim sh As Worksheet: Set sh = ActiveSheet
    Dim charaCount As Long
    
    For Each r In Selection
        'テキストボックス作成
        Set s = sh.Shapes.AddTextbox( _
            msoTextOrientationHorizontal, r.Width + r.Left, r.Top, r.Width, r.Height)
            
        s.TextEffect.Text = r.Value 'セルの値をテキストボックスの文字に指定
        
        With s.TextFrame
            .HorizontalAlignment = xlHAlignCenter '水平中央
            .VerticalAlignment = xlVAlignCenter '垂直中央
            .AutoSize = True 'テキストに合わせてサイズを自動変更
        End With
        
        charaCount = s.TextFrame2.TextRange.Characters.Count '文字数カウント
        With s.TextFrame2.TextRange.Characters(1, charaCount).Font 'フォント設定
            .Name = r.Font.Name '英数字
            .NameFarEast = r.Font.Name '日本語
            .Size = r.Font.Size 'サイズ
            
        End With
        
        '背景色ランダム、文字色白
'        Randomize
'        s.Fill.ForeColor.RGB = Int((16777215 - 0 + 1) * Rnd(16777215) - 0)
'        s.TextFrame.Characters.Font.Color = RGB(255, 255, 255)
    Next
End Sub

イメージ 4

背景色ランダム、文字色白
イメージ 5


今回大活躍の
アクティブシートの図形全部を削除するマクロ

Sub ShapesAllDelete全図形削除()
    ActiveSheet.Shapes.SelectAll
    Selection.Delete
End Sub

これはここを参照した
図形を一括削除するExcelマクロ:エクセルマクロ・Excel VBAの使い方-マクロのサンプル


トマトとスイートバジル、コナジラミ撮影、雨降ったその後に

$
0
0

さっき見に行ったら、またかー
イメージ 1
イメージ 2
また雨水を溜めてしまったようですね
根本的に直さないとまたこうなるなあ

イメージ 3
トマトぐにゃあ

スイートバジル
イメージ 4
これも穴を開けたところが低くなっているから
そこに雨水が流れ込んでよくなさそう
根から抜けてしまったのもこれが原因かも

コナジラミ
イメージ 5
イメージ 6
アザミウマに続いてこれも写真撮れた
いつもは少し葉っぱを揺らすと飛んでいってしまうけど
この日は風が強いせいか少し揺らしたくらいでは気付かれなかったみたい

イメージ 7
プチッとしてから手のひらに乗せて
去年のトマトはこれが運んできたウイルスでトマト黄化葉巻病になってしまった
ことしもかなあ


イメージ 8
イメージ 9
今のところはアザミウマにかじられた葉っぱが少し傷んでいるくらいで
順調な感じだけどどうなるか

イメージ 10
アザミウマはひとつの苗につき4~5匹見かける
小さいから見つけられずにいるのもありそうだから10匹くらいいるのかも
アブラムシは2~3匹
コナジラミは全体で2日で1匹

イメージ 11
スイートバジルにはほとんど害虫はつかない

テキストボックスの横幅はそのままで高さだけ文字列に合わせて調節するマクロ

$
0
0
テキストボックスのサイズの調整で横幅はそのままで、高さだけ文字列に調整したい
文字列の下に開いた空白やはみ出た文字をピッタリテキストボックスに収めたい


イメージ 1
こうしたかった

イメージ 2
こういう手動はイヤ、ピッタリにしたい

サイズの調節の設定は
イメージ 3
右クリックメニューからテキスト効果の設定で

イメージ 4
自動調整のテキストに合わせて図形のサイズを調整するにチェックを入れると

イメージ 5
こうなる、改行のない文字列だからこうなるのが自然だけど
求めているのと違う
ぐぐってみたけどそれらしい設定は見つからなかった

マクロを色々いじっていたらあった
Shape.TextFrame2.AutoSize = msoAutoSizeShapeToFitText
この前のフォント指定に続き、またしてもTextFrame2にあった
これを使うと横幅はそのままで高さだけピッタリに調節される
マクロに用意されているってことは、どこかにその設定があっても良さそうなんだけどねえ


選択されている図形に文字があったら図形の高さを文字に合わせるマクロ

Sub tatepittanテキストボックスの高さの調整()
'横幅そのままで高さを文字に合わせる
'テキストボックスなど文字のある図形を選択して実行
    On Error Resume Next
    
    Dim sr As ShapeRange
    Set sr = Selection.ShapeRange
    
    For i = 1 To sr.Count
        With sr.Item(i)
        '文字がない図形は無視、図形とテキストボックス以外も無視
            If .TextEffect.text <> "" Then
                If .Type = msoAutoShape Or .Type = msoTextBox Then
                    .TextFrame2.AutoSize = msoAutoSizeShapeToFitText
                End If
            End If
        End With
    Next
    
End Sub



この高さ調節のマクロを使って作ったのが次のマクロ
選択セルの値を使って見出しと本文の2つのテキストボックス作成して
グループ化するマクロ
選択しておくセルはひとつ、または一列の状態で実行、これが見出しになる
選択セルの右のセルの値が本文になる
イメージ 6
見出し(タイトル)にしたいセルを選択してマクロを実行すると

イメージ 7
見出しと本文のテキストボックスが作成される
重なっているから広げてみると

イメージ 8
こういうのが作ってみたかった、なお使い道は不明

イメージ 9
中身は2つの図形で青色の見出しの部分は正確に言うと
テキストボックスではなくて四角形(Rectangle)の図形でできている、
本文のほうはテキストボックス(textbox)でできている
この2つを組み合わせてグループ化している

なんで見出しは四角形の図形にしたのか
イメージ 10
図形を移動したいとき、テキストボックスを掴んでドラッグしようとすると
文字列の選択状態になってしまって移動できない、けど

図形の四角形なら
イメージ 11
文字以外の場所なら、そのままドラッグで移動できる!
だったら本文のほうも図形の四角形にしたほうがいいのかな



選択セルの値を使って見出しと本文の2つのテキストボックス作成して
グループ化するマクロ

Public Sub セルの値でタイトルつきテキストボックス()
'一列か1つのセルを選択した状態で実行
'選択セルの値でタイトル(見出し)部分を作成して、選択セルの右のセルの値で本文を作る
    Dim s As Shape
    Dim tb As Shape 'As TextBox
    Dim r As Range
    Dim ssName(1) As String
    Dim ASh As Worksheet
    Dim i As Long, mozisuu As Long
    Dim tCell As Range
    Dim sr As ShapeRange
    Const ShapeWidth As Single = 160 '図形の横幅
    
    Set ASh = ActiveSheet

    If TypeName(Selection) <> "Range" Then Exit Sub 'セルが選択されていなければここで終わり
    Set r = Selection    
    For i = 1 To r.Rows.Count
        Set tCell = r.Cells(i, 1)
        
    'タイトル部分(四角形)作成
        Set s = ASh.Shapes.AddShape(msoShapeRectangle, _
            tCell.Left, tCell.Top, tCell.Width, tCell.Height)
        ssName(0) = s.Name '名前を配列に入れる
        
        With s.TextFrame
            .HorizontalAlignment = xlHAlignCenter   '水平位置中央
            .VerticalAlignment = xlVAlignCenter     '垂直位置中央
            .Characters.text = tCell.Value
            mozisuu = .Characters.Count
        End With
        
        With s
            .Line.Weight = 0.1 '枠の太さ
            .Width = ShapeWidth
'            .Select
        End With
        
        With s.TextFrame2.TextRange.Characters(1, mozisuu).Font
'            .Name = r.Font.Name         'フォント指定(2015/06/15修正)
'            .NameFarEast = r.Font.Name  '日本語のフォント指定
'            .Size = r.Font.Size         'フォントサイズ

            .Name = tCell.Font.Name         'フォント指定
            .NameFarEast = tCell.Font.Name  '日本語のフォント指定
            .Size = tCell.Font.Size         'フォントサイズ
            .Bold = msoTrue             '太字指定
        End With
        s.TextFrame2.AutoSize = msoAutoSizeShapeToFitText 'TextFrameのAutoSizeとは少し違い
        '横幅は変化しないで高さだけが調整される+少し高さが高くなる
        
        
    '本文(テキストボックス)作成
        Set tCell = r.Cells(i, 2)
        Set tb = ASh.Shapes.AddTextbox(msoTextOrientationHorizontal, _
            s.Left, s.Top + s.Height, s.Width, s.Height)
        ssName(1) = tb.Name '名前を配列に入れる
        
        With tb
            .Line.ForeColor = s.Line.ForeColor
            .Height = 90
'            .Select False
            'Falseを指定すると前回Selectしたもの(タイトル部分の図形)が解除されない
            'つまりCtrl+クリックした時と同じ効果
        End With
        
        With tb.TextFrame
            .Characters.text = tCell.Value
            mozisuu = .Characters.Count
        End With
        
        With tb.TextFrame2.TextRange.Characters(1, mozisuu).Font
            .Name = tCell.Font.Name         'フォント指定
            .NameFarEast = tCell.Font.Name  '日本語のフォント指定
            .Size = tCell.Font.Size
        End With
        
        '横幅そのままで高さだけピッタリに変更
        tb.TextFrame2.AutoSize = msoAutoSizeShapeToFitText
'        tb.TextFrame.AutoSize = True'こっちだと横幅が変化してしまう

'図形のグループ化はSelectionを使ったほうがいいのか、配列を使ったほうがいいのか
'        Selection.Group 'Selectionを使って図形のグループ化
        ASh.Shapes.Range(ssName).Group.Select '名前を使ってタイトルと本文をグループ化
       '名前を使ってタイトルと本文をグループ化して
        Set gp = ASh.Shapes.Range(ssName).Group
        gp.Placement = xlFreeFloating   'セルに合わせて移動やサイズを変更しないに設定
        gp.Line.Weight = 0.1            '枠の太さ
    Next
End Sub
イメージ 14
テキストボックスの横幅の指定は12行目にある
Const ShapeWidth As Single = 160 '図形の横幅
この160、これを変更して実行


参照したところ
EXECLマクロでshapeがグルーフ゜化されてるかどうかを調べる方法は? - Visual Basic | 教えて!goo
topotopopitapo : EXCELで、グラフやオブジェクトがセルに合わせて大きさが変わるのを固定したい




午後のパレットで図形の背景色と文字色を変更できるみたい
イメージ 12


テーマ用パレットではできなくてクリックしても色は変更できない
できるのはマイパレットとRGBテーマだけ
枠の色はどのパレットでも変更できない
元に戻す(アンドゥ)ボタンでもとに戻すことはできない

できると言っても本来の使い方とは違うから予期しない動作になることもあるはず
できたほうが便利だからこのままにしておこうw
イメージ 13


その32、タイトルつきテキストボックスをアドインの午後のパレットに追加した、外枠も

$
0
0
この前のタイトルつきテキストボックス作成のマクロを
午後のパレットアドインに追加した

セルの値を利用して
イメージ 3
こういうのを作るアドイン


イメージ 1
エクセルのリボンのパレットタブの
Toolグループの午後の道具アイコンをクリックでUserForm1が表示される

イメージ 2
タイトルにしたい値があるセルを選択して「作成」ボタンを押すと

イメージ 4
テキストボックスが作成される

詳しくは昨日書いた記事
テキストボックスの横幅はそのままで高さだけ文字列に合わせて調節するマクロ ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ

イメージ 5
空白のセルとかを選択した状態で作成すると

イメージ 6
それぞれ空白のテキストボックスが作成される

イメージ 7
「作成2」ボタンは

イメージ 8
影付きのテキストボックスを作成する


選択セルの上にある図形を選択する
イメージ 9
選択したいテキストボックスに重なるようにセルを選択してから
「図形選択」ボタンを押すと

イメージ 10
選択セルに少しでも重なっていたテキストボックスが選択状態になる


選択セルにある図形選択のマクロ

Public Sub SelectShapes選択範囲の図形を選択名前編()
    Dim s As Shape
    Dim actSh As Worksheet
    Dim sr As Range, ir As Range
    Dim ShapeNames() As String
    Dim i As Long
    '選択されているのがセル以外ならここで終わり
    If TypeName(Selection) <> "Range" Then Exit Sub
    
    Set actSh = ActiveSheet
    For Each s In actSh.Shapes
        Set sr = Range(s.TopLeftCell, s.BottomRightCell) '今の図形があるセル範囲
        Set ir = Intersect(Selection, sr) '選択せると図形のあるセルが重なるセル範囲取得
        If Not (ir Is Nothing) Then
            ReDim Preserve ShapeNames(i)
            ShapeNames(i) = s.Name
            i = i + 1
        End If
    Next
    
    If i = 0 Then Exit Sub '一個もなければここで終わり
    '図形の選択
    actSh.Shapes.Range(ShapeNames).Select 'ActiveSheet.Shapes.Range(array(名前)).Select
    
End Sub
イメージ 18



図形選択のマクロ作成で参照したところ
選択したセル範囲に含まれる図形を削除するExcelマクロ:エクセルマクロ・Excel VBAの使い方-マクロのサンプル



テキストボックスの再調整
イメージ 11
こうなふうにサイズやレイアウトが崩れてしまった時に
再調整したいテキストボックスを選択して「再調整」ボタンクリックで

イメージ 12
まともな感じになる
位置や幅の基準になるのはタイトルのほう


今思い出した
イメージ 13
午後のパレットで通常モードで枠線を指定できるようにした
水色枠の4つのボタン上下左右の枠線を指定できる

イメージ 14
選択セルの外側にそれぞれ上下左右に枠線

イメージ 15
外枠だけ

イメージ 16
色と線の種類も指定できる
赤の点線にして上と右を押すと

イメージ 17
選択範囲の外側の上と右に赤の点線


ダウンロード先
アドインファイル名:午後のパレット_20150613.xlam



イチゴの苗作り、木酢液でアブラムシ避け、雨よけmkⅢ

$
0
0
いちご

イメージ 3
2週間前

イメージ 1
今日(2015/06/15)
大きなプランターを独り占めしているのと花芽がつかなかったせいか
この株からはランナーが4本も出ている

イメージ 4
この株も今では

イメージ 2
こんなに増えた、これも花芽はつかなかった株

イメージ 5
花芽がついて収穫のあった株からは
やっと1~2本ランナーがでてきたところ

アブラムシ
イメージ 8
新しく葉っぱが出てくるときは3枚が閉じて重なった状態
広げてみると

イメージ 6
アブラムシがよく付いている
これを放置すると

イメージ 7
きれいじゃない葉っぱになるのかも

木酢液とアブラムシ
イメージ 9
これを500倍に薄めて葉っぱや株、土、プランターを含めて全体に
適当に吹きかけておいたらアブラムシの数が減った

イメージ 10
1mlを500mlの水で薄める
減ったと言っても完全にいなくなるわけでもないし
殺虫効果もなさそうでアブラムシが寄ってきにくくなる感じ

イチゴの隣に数百から数千匹単位でアブラムシが発生して
枯死寸前だったジャガイモがあってそれに吹きかけておいたら
2日くらいで見た目は完全復活した
イメージ 11
けどアブラムシ自体はまだ数百匹いる状態なので
木酢液はアブラムシの活動を抑える効果もあるのかも?
これでてんとう虫とかに悪影響がなければいいなあ
使った量は
3日に1回を4回くらいかな
これだけ使ってもイチゴ、トマト、ジャガイモ自体に悪影響はないように見える

イチゴの雨よけmkⅢ爆誕
イメージ 12
この前の雨でこんなんなっていたので変更した

イメージ 13
高くした

イメージ 14
繋ぎ目が気になる

イメージ 15
以前のものより簡素になった

イメージ 16
風で飛ばされそう
あらためて写真見ていたら不安になってきた
この日は風が殆ど無い日だったからなあ

イメージ 17
イメージ 18
収納状態


午後のパレットその32、タイトルつきテキストボックスの影の種類を増やした、エクセル2007の光彩

$
0
0

イメージ 1
影の種類を増やした

イメージ 2
影なしはそのまま

イメージ 3
影付1は普通の影の色を変えただけ

イメージ 4
影付2は影をぼかさないでくっきり
なぜかタイトルと本文の境目の影までくっきりになる

イメージ 5
影付3は枠の外側をぼかしたような影
これはGlow(光彩)で指定したかったけどGlowの透明度が指定できなくて
やむなく影で表現することにしたもの

イメージ 12
Glowのプロパティで透明度を指定するTransparencyが出てこないし

イメージ 13
仮に指定したとしてもエラーになる

エクセルVBA Glow 光彩 excelVBAとかでぐぐってもあんまり出てこない
GlowFormat Object Members [Object Library Reference for the 2007 Microsoft Office System]
ここ見てもTransparencyは無いんだよなあ

GlowFormat メンバー (Office)
Office2013の説明、こっちではTransparency(透明性)がある
ってことはエクセル2007では指定できないのかも?
でも

イメージ 14
リボンから指定する光彩では半透明になるけど
どれくらい透明にするとか細かい指定はできない
リボンにできてマクロでできないってのが納得できない
長くなったけど実際Glowを諦めるまで長かった


イメージ 6
影の色はタイトルの色とおなじにしているけど
黒や灰色にした方がいいかなあ


イメージ 7
?背景色にチェックを入れてテキストボックスを作成すると
適当な色になる

イメージ 8
チェックを入れてこの状態で影付1を押すと

イメージ 9
まとめて作るときも一つ一つ違う色になる

イメージ 10
何色になるかはできるまでわからない

イメージ 11
昔のグラフィックのベンチマークソフトみたいになっているw

不具合の修正
タイトルと本文のフォントが別々の時にエラーになっていたのを修正


ダウンロード先
ファイル名:午後のパレット_20150615.xlsm


トマトに蕾、スイートバジルの葉っぱ

$
0
0
トマト(レッドオーレ)、種まきから36日目

イメージ 1
結構大きくなったなあ
といっても一ヶ月以上経っているのかw

イメージ 2
大きいのは20センチ越えて

イメージ 3
イメージ 4
蕾も見えてきた!
そろそろ定植したほうが良いのかしら

イメージ 5
一番小さい株はまだ蕾は見えない

イメージ 9
コナジラミは2日に1匹くらいで見る
アザミウマは毎日3匹くらいかな、少し減ったように思う
アブラムシは減ってきて、今日は1匹も居なかった
アブラムシが減ったのは木酢液を薄めたものを吹きかけておいたせいかも?
イチゴには効果があった記事
イチゴの苗作り、木酢液でアブラムシ避け、雨よけmkⅢ ( ガーデニング ) - 午後わてんのブログ - Yahoo!ブログ

イメージ 10
下側の古い葉っぱは新しかった頃にアザミウマにかじられた

イメージ 11
中間の葉っぱ、葉っぱの先のほうがかじられたっぽい

イメージ 12
上の葉っぱはきれい

イメージ 13
去年のトマトと比べると葉っぱがあまり緑じゃないのと
葉っぱが少ないというか小さい、株全体も小さい感じかなあ
品種の違いなのか直播きとポリポットの差なのか
去年の記事
月間放置栽培8月号トマト編 ( ガーデニング ) - 午後わてんのブログ - Yahoo!ブログ

スイートバジル、種まきから19日目
イメージ 6
イメージ 7
バジルっぽい葉っぱになってきた

イメージ 8
これは2015/05/30の種まきから19日目のトマト
同じ19日目でもトマトのほうが大きい
一緒に育てるときはスイートバジルを先に種まきすると良さそう


午後のパレットその33、本文の背景色そのままでタイトルと枠と影の色を変更できるようにした

$
0
0
午後のパレットテーマカラー以外ならタイトルつきテキストボックスの本文以外の背景色と枠と影の色をまとめて変更できるようにした
午後のツールタイトルつきテキストボックス作成時に背景色を未指定、色見本と同じ色、ランダムから選べるようにした、指定色にする色をセルや図形から取得できるようにした

イメージ 2

イメージ 3
午後の道具をクリックで午後のツール表示

色の取得
イメージ 4
図形を選択してから色取得ボタンで色の取得

イメージ 5
セルの塗りつぶしの色も取得できる

取得した色でテキストボックス作成
イメージ 6
午後のツールの背景色に色見本にチェックを入れて
セルを選択した状態で作成ボタンを押すと
背景色が指定した色のテキストボックスが作成される

背景色の指定で未指定とランダムは前回と同じ



イメージ 1

イメージ 7
前回はこの状態からパレットの色をクリックすると

イメージ 8
タイトル部分だけではなく本文の背景色もクリックした色になって
枠や影の色はそのままで不自然だと思ったので

イメージ 9
今回は下側のテキストボックスのように
本文はそのままの色で枠と影の色を変更するようにした

イメージ 10
本文の色を変えたいときは本文を選択して色を指定すれば

イメージ 11
そこだけ色が変わるのは前回までと同じ

ダウンロード先
ファイル名:午後のパレット_20150617.xlam



午後のパレットのアンドゥ・リドゥボタンはセルだけが対象なので
テキストボックスの色を変更したものはボタンを押しても元に戻らないのは
紛らわしいけどいい方法が思いつかないんだよなあ



トマト1株だけプランターに定植した

$
0
0
トマト(レッドオーレ)一株だけ定植

イメージ 1
大きいプランターに定植
した後に黒マルチをするの忘れていたのと
このプランターには二株植える予定だったのを思い出した

イメージ 2
この3つのうち定植したのは右側の株

イメージ 3
開花してから定植しようと思っていたんだけど
下側の葉っぱが黄色くなってきているのを見て
これは肥料が足りないのかなと思ったから

イメージ 4
株全体も元気が無い感じがする
大きいプランターの土には肥料を入れてある

イメージ 5
あと一週間もあれば開花する?

イメージ 6
ポリポットから外したらトマトのいい匂いがした
根からも匂いがするとは予想外だった
去年は直播きだったので植え替えは初めて

イメージ 7
イメージ 8
根が詰まり気味?もう少し大きいポットで苗を作ったほうがいいかな
元気がなさそうなのはこれが原因かな

イメージ 9
種まきから40日目
支柱とか雨よけとかどうしようかなあ


スイートバジル、種まきから23日目
イメージ 10
スイートバジルは何も考えなくても、それなりに育つんだよなあ

イメージ 11
ほとんど手かがからない


午後のパレットその34、午後のツールで選択セルの色情報とセルの値で四角形に文字

$
0
0
選択セルの色情報記入と四角形に文字の図形を作成するアドイン

イメージ 1
色々増やした

午後のツール(午後の道具)Page2
イメージ 2
1ボタンを押すと図形の四角形を作成する
その図形には選択セルの値を文字として入れる
見た目はテキストボックスと同じ

イメージ 3
背景色の指定とかはこの前のタイトルつきテキストボックスと同じ


なんでテキストボックスではなくて図形の四角形に文字入れなのか
イメージ 5
図形の四角形の文字以外(余白)のところでのマウスカーソルの形

イメージ 6
テキストボックスの文字以外(余白)のところでのマウスカーソルの形
この違いは

イメージ 4
ドラッグして移動できるかできないか

イメージ 7
テキストボックスだとドラッグしようとしても
テキストの編集状態になってしまう

イメージ 8
移動させるにはマウスカーソルを細い枠の部分に正確に合わせないとできない
これがめんどくさいから四角形にした


午後のツール(午後の道具)Page3
イメージ 9
セルの塗りつぶしの色の情報をセルに記入する

イメージ 10
色が塗られているセルがあって

イメージ 11
セルを選択して

イメージ 12
R,G,Bボタンを押すとこうなる
塗りつぶしの色のRGBの値をセルに記入
この値は

イメージ 14
エクセルの塗りつぶしの色→その他の色→ユーザー設定タブに
表示される値と同じになっているはず

イメージ 13
隣のRは赤の値だけを記入
Rボタンの右のGは緑、Bは青の値を記入するボタン

イメージ 15
上のH,S,Lボタンは
選択セルの塗りつぶしの色のHSLの値をセルに記入する
Hが色相、Sが彩度、Lが輝度(明度?)
この値は

イメージ 16
RGBの時と同じようにエクセルの色の設定のカラーモデルをHSLにした時に
表示される値とほぼ同じになるはず
H,S,Lそれぞれの値の範囲は0から255

イメージ 17
したのH,S,Lも同じHSLの値だけど範囲(解像度)が違っていて
Hは0から360、SとLは0から100で表示される

イメージ 18
NTSCの輝度を記入

イメージ 19
HDTVでの輝度

文字の色が黒だと見えなかったりするので
イメージ 20
セルの色を判別して文字色を白と黒に指定するのが白or黒ボタン
隣の白と黒ボタンは選択セルの文字色をその色にする

イメージ 21


ダウンロード先
ファイル名:午後のパレット_20150620.xlam

イチゴの雨よけ試作ハ型のその後、デンプン溶液を作ってアブラムシに吹きかけた結果

$
0
0
イチゴの雨よけその後
2015/06/12に改装したイチゴの雨よけ
イメージ 1
2015/06/17の次の日が雨の予報だったので展開してみたら
風にあおられてバタバタするのでビニール紐で囲ってみたところ
多少ましになった

イメージ 2
神様の例の紐みたいだと思った(こなみ)

イメージ 6
2015/06/18は予報通り雨が降って
深夜頃は確かに風が強かった8.9m/sってのは納得できる数字

イメージ 3
明けて2015/06/19

イメージ 4
大丈夫だったみたい

イメージ 5
イメージ 9
風にはだいぶ揺さぶられたようで支柱の根本を見ると
支柱と土の間に空間ができていた

イメージ 7
イメージ 8
最低でもこれくらいは揺れていたことになる
台風だったら持たないなあ

イメージ 22
トマトの苗も入れておいたんだけど狭くて

イメージ 23
ビニールがバタバタ当たったところの葉っぱが枯れてしまった


アブラムシにデンプン溶液
イメージ 10
イチゴのプランターの隣にあるジャガイモにアブラムシが大量発生している
前回までは木酢液を500倍に薄めたものを吹きかけて少し減ったかなあ
くらいの効果だったのでデンプン溶液を試すことにした

イメージ 11
使った片栗粉の量はこんな感じ、適当
計量するものがないのでこうなるwだいたい大さじ1杯くらいかな
これを500mlの水というかお湯で溶かす

イメージ 12
弱火で加熱しながら混ぜて溶かしているところ
60度位で溶けるらしいけど温度計無いです

参照したところ
でんぷん溶液の作り方を教えてください。自由研究を今からしようと思う... - Yahoo!知恵袋

面白くて眠れなくなる 不思議な理科のはなし~「チンダル現象」とは | PHPオンライン 衆知|PHP研究所

片栗粉を入れた時の温度は指を入れて1秒持たないくらい(45度位)の時だったけど
水からでも良さそう
水面から少し湯気が出るくらいで火を止めた
この時点で片栗粉は完全に溶けてはいなくて
上の写真より少し透明になったかなくらいで不透明だった
もう少し加熱しても良かったかも
これを冷まして

イメージ 13
右下に写っている霧吹きに入れてアブラムシに吹きかけてきたのが
一昨昨日の2015/06/19
作った500mlは多すぎて半分以上余った、200mlくらいでよかった

イメージ 14
吹きかけ直前
丸々としたアブラムシ

イメージ 15
翌日
しぼんだ感じになっている、多分この時点で死んでいる

イメージ 16
翌々日
かなり減った、アリも減った

イメージ 17
三日後の今日
昨日と変わらないかな
ってことで効果は一時的だけど大量発生した場合は効果がある
1回で退治することはできない

イメージ 18
地面に近い葉っぱはもっとすごい

イメージ 19
同じ葉っぱじゃないけどこれも地面にくっついているような葉っぱだけど
アブラムシがかなり減っているし
何よりもアブラムシの死骸らしき小さな点々があるから
木酢液と違って殺虫効果はある

イメージ 20
デンプン溶液だから乾くと澱粉が葉っぱに残っているのがわかる

イメージ 21
乾燥していればペリっと容易にはがせるから
葉っぱの呼吸するところを塞いでしまっているようには感じないし
今のところ悪影響もなさそうに見えるけど
何回も使うのはためらわれるかなあ

デンプン溶液を作って使ってみて
なかなかいいじゃん!ってところ
少なくとも牛乳みたいに臭くならないし効果も上だと感じる
石鹸水と油を混ぜたものは作り方のせいか噴霧器が詰まってしまった
デンプン溶液は作るのが多少手間
どれくらいの濃さで作ればいいのかわからないのと
もう少し加熱したほうがいいのかもってところかなあ


午後のパレットその35、午後のツールで選択セルの色をCMYKとRYB?で表示

$
0
0
CMYKとRYB
前回の続きで

イメージ 1
ピンクの四角のところが新しく追加したボタン

イメージ 2
選択セルの塗りつぶしの色のCMYKとRYBの値をセルに入力する

イメージ 3

イメージ 4
CMYKはこれでいいはず
RYBは違う気がする

CMYKとRGBの相互変換で参照したところ
RYBとRGBの相互変換で参照したところ
node-rgb2ryb/rgb2ryb.js at master · bahamas10/node-rgb2ryb · GitHub
なんだけど違うカンジがするんだよなあ
どんなふうに違うかは
エクセルの色の指定のLong値(10進数)とRGBとCMYKとRYBの相互変換…をしたかった ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ

イメージ 5

ダウンロード先
ファイル名:午後のパレット_20150623.xlam


エクセルの色の指定のLong値(10進数)とRGBとCMYKとRYBの相互変換…をしたかった

$
0
0
RGBをCMYKに変換は
このへんをみて
CyanC=(1-R-K)/(1-K)
MagentaM=(1-G-K)/(1-K)
YellowY=(1-B-K)/(1-K)
Black(K)K=最小値(1-R,1-G,1-B)

CMYKをRGBに変換
RedR=1-最小値(1,C*(1-K)+K)
GreenG=1-最小値(1,M*(1-K)+K)
BlueB=1-最小値(1,Y*(1-K)+K)
CMYKとRGBの相互変換の式はこうらしい
色の範囲が違うせいか可逆ではなくて不可逆


エクセルVBAだとこんな感じになった

’RGB3つの値の入れ物myRGB
Type myRGB
    iRed As Integer
    iGreen As Integer
    iBlue As Integer
End Type

’CMYK4つの値の入れ物myCMYK
Type myCMYK
    iC As Double
    iM As Double
    iY As Double
    iK As Double
End Type

’Long値(セルの塗りつぶしの色とか)をRGBに変換
Function Color2RGB(ByVal myColor As Long) As myRGB
'Color(Long)をRGBにして返す
    Dim iRGB As myRGB
    With iRGB
        .iRed = myColor Mod 256
        .iGreen = Int(myColor / 256) Mod 256
        .iBlue = Int(myColor / 256 / 256)
    End With
    Color2RGB = iRGB
End Function

’CMYKをRGBに変換
Function CMYK2RGB(iCMYK As myCMYK) As myRGB
    Dim iRGB As myRGB
    Dim R As Double, g As Double, b As Double
    Dim Cyan As Double, Mage As Double, Yell As Double, Kblc As Double
    With iCMYK
        Cyan = .iC / 100
        Mage = .iM / 100
        Yell = .iY / 100
        Kblc = .iK / 100
    End With
    With WorksheetFunction
'        r = CInt(1 - (.min(1, Cyan * (1 - Kblc) + Kblc)) * 255)
        R = .min(1, Cyan * (1 - Kblc) + Kblc)
        g = .min(1, Mage * (1 - Kblc) + Kblc)
        b = .min(1, Yell * (1 - Kblc) + Kblc)
    End With
    R = CInt((1 - R) * 255)
    g = CInt((1 - g) * 255)
    b = CInt((1 - b) * 255)
    With iRGB
        .iRed = R
        .iGreen = g
        .iBlue = b
    End With
    CMYK2RGB = iRGB
    
End Function

’Long値(セルの塗りつぶしの色)をCMYKに変換
Function Color2CMYK(myColor As Long) As myCMYK
    Dim iRGB As myRGB
    Dim iCMYK As myCMYK
    Dim R As Double, g As Double, b As Double
    Dim Cy As Double, Ma As Double, Ye As Double, Kb As Double
    iRGB = Color2RGB(myColor)
    With iRGB
        R = .iRed / 255
        g = .iGreen / 255
        b = .iBlue / 255
    End With
'        .iK = WorksheetFunction.min(1 - r, 1 - g, 1 - b)
    Kb = 1 - WorksheetFunction.max(R, g, b)
    If Kb <> 1 Then
        Cy = (1 - R - Kb) / (1 - Kb)
        Ma = (1 - g - Kb) / (1 - Kb)
        Ye = (1 - b - Kb) / (1 - Kb)
    End If
    With iCMYK
        .iC = Cy
        .iM = Ma
        .iY = Ye
        .iK = Kb
    End With
    
    Color2CMYK = iCMYK
End Function

'CMYKボタンのクリックイベント
Private Sub CButtonDisplayCMYK_Click()
    Dim R As Range
    Dim iRGB As myRGB
    Dim iCMYK As myCMYK
    
    If TypeName(Selection) <> "Range" Then Exit Sub
    For Each R In Selection
        iCMYK = Color2CMYK(R.Interior.Color)
        With iCMYK
            R.Value = "'" & CInt(.iC * 100) & "," & CInt(.iM * 100) & "," & CInt(.iY * 100) & "," & CInt(.iK * 100)
        End With
    Next
End Sub

CMYKとRGBの変換式はたくさんの解答があったのでほとんどコピペでできた




問題はRYB
イメージ 9
基準になるそれぞれの色のRGBの値
同じB(青)でも違う

イメージ 10
その他の基準?になる色の違い
赤と黄色以外はかなり違う、これが面白い



RYBをRGBに変換するのはJavaScript?のコードが見つかったので
ryb/RXB.js at gh-pages · bahamas10/ryb · GitHub
これをエクセルVBAで書いてみたのが

Function MagicColors()
    Dim magic, mW, my, mR, mO, mB, mg, mP, mK
    mW = Array(1, 1, 1)         '白
    my = Array(1, 1, 0)         '黄色
    mR = Array(1, 0, 0)         '赤
    mO = Array(1, 0.5, 0)       '橙
    mB = Array(0.163, 0.373, 0.6) '青
    mg = Array(0, 0.66, 0.2)    '緑
    mP = Array(0.5, 0, 0.5)     '紫
    mK = Array(0.2, 0.094, 0)   '黒
    magic = Array(mW, my, mR, mO, mB, mg, mP, mK)
    
    MagicColors = magic
    
End Function

Function cubicInt(t, A, b)
    Dim myWeight
    myWeight = t * t * (3 - 2 * t)
    cubicInt = A + myWeight * (b - A)
End Function

Function getR(iR, iY, iB, magic)
    Dim x0, x1, x2, x3, y0, y1
    
    x0 = cubicInt(iB, magic(0)(0), magic(4)(0))
    x1 = cubicInt(iB, magic(1)(0), magic(5)(0))
    x2 = cubicInt(iB, magic(2)(0), magic(6)(0))
    x3 = cubicInt(iB, magic(3)(0), magic(7)(0))
    y0 = cubicInt(iY, x0, x1)
    y1 = cubicInt(iY, x2, x3)
    getR = cubicInt(iR, y0, y1)
End Function

Function getG(iR, iY, iB, magic)
    Dim x0, x1, x2, x3, y0, y1
    
    x0 = cubicInt(iB, magic(0)(1), magic(4)(1))
    x1 = cubicInt(iB, magic(1)(1), magic(5)(1))
    x2 = cubicInt(iB, magic(2)(1), magic(6)(1))
    x3 = cubicInt(iB, magic(3)(1), magic(7)(1))
    y0 = cubicInt(iY, x0, x1)
    y1 = cubicInt(iY, x2, x3)
    getG = cubicInt(iR, y0, y1)
End Function

Function getB(iR, iY, iB, magic)
    Dim x0, x1, x2, x3, y0, y1
    
    x0 = cubicInt(iB, magic(0)(2), magic(4)(2))
    x1 = cubicInt(iB, magic(1)(2), magic(5)(2))
    x2 = cubicInt(iB, magic(2)(2), magic(6)(2))
    x3 = cubicInt(iB, magic(3)(2), magic(7)(2))
    y0 = cubicInt(iY, x0, x1)
    y1 = cubicInt(iY, x2, x3)
    getB = cubicInt(iR, y0, y1)
End Function

Function RYB2RGBtest(iRYB As TypeRYB) As myRGB
    r = iRYB.iR
    Y = iRYB.iY
    b = iRYB.iB
    
    Dim magic
    magic = MagicColors
    
    Dim R1, G1, B1
    R1 = getR(r, Y, b, magic)
    G1 = getG(r, Y, b, magic)
    B1 = getB(r, Y, b, magic)
    
    R1 = R1 * 255
    G1 = G1 * 255
    B1 = B1 * 255
    R1 = WorksheetFunction.Ceiling(R1, 1)
    G1 = WorksheetFunction.Ceiling(G1, 1)
    B1 = WorksheetFunction.Ceiling(B1, 1)
    Dim iRGB As myRGB
    With iRGB
        .iRed = R1
        .iGreen = G1
        .iBlue = B1
    End With
    RYB2RGBtest = iRGB
End Function



上のRYBをRGBに変換するのを使うときはこんな感じ

Sub testryb2rgb()
    Dim iRYB As TypeRYB
    Dim iRGB As myRGB
    With iRYB
        .iR = 0
        .iY = 1
        .iB = 1
    End With
    iRGB = RYB2RGBtest(iRYB)
End Sub

これを実行すると
R=0、G=169、B=51が得られる

イメージ 12



’RYBの青(0,0,1)をRGBに変換
Sub testryb2rgb()
    Dim iRYB As TypeRYB
    Dim iRGB As myRGB
    With iRYB
        .iR = 0
        .iY = 0
        .iB = 1
    End With
    iRGB = RYB2RGBtest(iRYB)
End Sub
イメージ 13

R=42,G=96,B=153
本当はG=95みたいなんだけど1違うのは小数点を切り上げているからかな
でもだいたいあっている


ってことでRYBをRGBに変換はできたんだけど
逆のRGBをRYBに変換するのが見つからない
というか見つかるのは本当のRYBじゃなくてRYBに似たものしか見つからない
本当のRYBのB(青)はRGBに変換すると42,95,153になる青
イメージ 14
これがRYBの基準になるB(青)

イメージ 15
RGBのB(青)(0,0,255)はこれ
見つかるのはRGBのBにRYBのBを合わせたものばかり
node-rgb2ryb/rgb2ryb.js at master · bahamas10/node-rgb2ryb · GitHub
拡張子みたいなのが.jsだからJavaScriptなのかな
これにはRGBとRYBの相互変換が書いてあるので両方共エクセルVBAで書いて
午後のツールで使っているのが↓になる


’RGBをRYBに似たものに変換
Function RGB2RYB(iRGB As myRGB) As TypeRYB
    Dim r, g, b
    r = iRGB.iRed / 255
    g = iRGB.iGreen / 255
    b = iRGB.iBlue / 255
    Dim w
    w = WorksheetFunction.min(r, g, b)
    r = r - w
    g = g - w
    b = b - w
    Dim mg
    mg = WorksheetFunction.max(r, g, b)
    Dim Y
    Y = WorksheetFunction.min(r, g)
    r = r - Y
    g = g - Y
    If b <> 0 And g <> 0 Then
        b = b / 2
        g = g / 2
    End If
    
    Y = Y + g
    b = b + g
    
    Dim my
    my = WorksheetFunction.max(r, Y, b)
    If my <> 0 Then
        Dim n
        n = mg / my
        r = r * n
        Y = Y * n
        b = b * n
    End If
    
    r = r + w
    Y = Y + w
    b = b + w
    
    Dim iRYB As TypeRYB
    With iRYB
        .iR = r
        .iY = Y
        .iB = b
    End With
    RGB2RYB = iRYB
    
End Function


’RYBに似たものからRGBに変換
Function RYB2RGB(iRYB As TypeRYB) As myRGB
    Dim w
    Dim r, Y, b
    With iRYB
        r = .iR
        Y = .iY
        b = .iB
    End With
    
    w = WorksheetFunction.min(r, Y, b)
    r = r - w
    Y = Y - w
    b = b - w
    
    Dim my
    my = WorksheetFunction.max(r, Y, b)
    Dim g
    g = WorksheetFunction.min(Y, b)
    Y = Y - g
    b = b - g
    If b <> 0 And g <> 0 Then
        b = b / 2
        g = g / 2
    End If
    
    r = r + Y
    g = g + Y
    
    Dim mg
    mg = WorksheetFunction.max(r, g, b)
    If mg <> 0 Then
        Dim n
        n = my / mg
        r = r * n
        g = g * n
        b = b * n
    End If
    
    r = r + w
    g = g + w
    b = b + w
    
    Dim iRGB As myRGB
    With iRGB
        .iRed = CInt(r * 255)
        .iGreen = CInt(g * 255)
        .iBlue = CInt(b * 255)
    End With
    
    RYB2RGB = iRGB
    
End Function

これだとあんまり面白くない感じなんだよなあ
やっぱり本物っぽい方で変換したい

ググって
blufiro: RYB Color Wheel
ここ見たら面白いのがあった
HSV-RYB relationってところ
これを見て
RYBのそれぞれの値を0.1づつ変化させたらどうなるのか見てみた
イメージ 1
左のRGBのそれぞれの値を読み取ってRGBに変換してセルに色を塗って
色を塗ったところの数値はHSLのH(色相)の値
右のRGBはその色のRGBの値
数字だけ見てもよくわからないからグラフにして
イメージ 2
曲線だらけ
なのでRGBを一旦HSLに変換してからRYBに変換ってのも僕にはムリだー
どうなってるんだこれ

イメージ 3

これを基準にしたんだけど
他のところを見ると

RYB color model - Wikipedia, the free encyclopedia
イメージ 4
イメージ 5
イメージ 6
同じ赤や黄色でも微妙に色が違っていてわかんなくなってきたぞー


RGBではなく赤・黄・青の「RYB」カラーモデルで色を選択する方法とは? - GIGAZINE
日本語で少し説明のあるここ見ると
やっぱり
ryb/RXB.js at gh-pages · bahamas10/ryb · GitHub
ここなのかなあって気がするけど
イメージ 7
この青よりもう少し鮮やかな

イメージ 8
こっちのほうがいいかなとも思う


記事を投稿したら貼り付けた画像がいくつか消えたぞー(3回目くらい)
イメージ 11
前回は文字数制限がどうとか言われたけど
文字数カウントしたら8991文字だから制限の2万文字以内だぞー
最終的にこの記事だけで3回画像を貼り直したよ
  1. 記事を投稿する
  2. 貼り付けた画像のいつくかが消えていたので記事の編集
  3. 貼り付け直して記事を投稿する
  4. 別の画像が消えているので2へ戻る(゚д゚)



トマト(レッドオーレ)種まきから45日目で開花、定植2株目、スイートバジルの28日目

$
0
0
トマト(レッドオーレ)開花
種まきから45日目

イメージ 3
定植1日後、こうだったのが

イメージ 4
4日後の今日2015/06/25開花

イメージ 1
ケータイの画面が確認できない態勢から撮ったけどうまく撮れた

イメージ 5
上から

イメージ 6
ちょっと戻って一昨日、右の苗を定植した、これが2つめになる

イメージ 7
イチゴが1つ植えてある中央のプランターに

イメージ 8
穴を掘って

イメージ 9
イメージ 10
根の確認
ポリポットからか外すと手に土がつく、手を洗う(めんどくさい)、写真取る
写真撮る用の腕がほしい

イメージ 11
植え替え完了
マルチングは苺の苗のポリポットが邪魔などの理由で見送りになった模様

イメージ 12
支柱をどうたてようかまだ迷っている
雨よけもしたいんだよなあ

イメージ 13
今日の様子

イメージ 2
この株も開花、2つ目も開きかけている

最初に定植した株の蕾から開花まで
イメージ 14

イメージ 15
花びらが出てきた

イメージ 16
少し開いてきた

イメージ 17
開花?

イメージ 18
イメージ 19
開花!

去年も開花まではしたけどトマト黄化葉巻病で実がつかなかった
原因になるウイルスを運んでくるコナジラミ類は2日に1匹くらい見かける
といっても最近はあまり注意してみていない
去年はトマト黄化葉巻病のことを知らなかったのでコナジラミ類を
気にしていなかったけどほとんど見た記憶がなかった
それでも発病してしまったので今年もどうなるかわからない
トマトの品種も去年は食用で買ってきた大玉トマトからの種で
今年は栽培用の種っていう違いがある
大玉トマトは病害虫に弱いらしいので今年は中玉を選んだら
レッドオーレだった次第

イメージ 20
イメージ 21
2番めに定植した株は最初の株に比べると株全体が赤っぽい

イメージ 22
残り一個のトマトの苗、植える場所が決まっていない
定植した株と比べると縦に長くて横幅が狭い、葉っぱが小さい感じ

イメージ 27
この株も小さな蕾は付いている

スイートバジル
イメージ 23
穴を開けたところに雨水が集中してしまうので

イメージ 24
プランターを斜めにした

イメージ 25
プランターの下にレンガのかけらを置いただけ

イメージ 26
今日で種まきから28日目

午後のパレットその36、色の指定をRYB形式でできるようにしたエクセルアドイン午後の色作成

$
0
0
午後の色作成でRYBの指定で色を作成できるようにしてみた

イメージ 1
RYBのBの値を100%に指定してRYBの真っ青を作ったところ

イメージ 2
RYBの色空間ではこれが基本になるっぽい

イメージ 4
これのRGBの値に255をかけると

イメージ 3
こんなふうになっている、数値は切り上げ
RYBの完全な青はRGBでいうRGB(42,96,153)になる
黒も完全な黒じゃなくて濃い赤黒


使うときは
イメージ 5
午後の色作成のRYBのボタンを押すと

イメージ 6
下に広がってRYBの数値を指定するスライダーが表示される

イメージ 7
RYBそれぞれのスライダーを動かすと
選択セルの色が変化する
同時にRGBとHSLのスライダーと値も変化する

RYBをRGBに変換するのは
ryb/RXB.js at gh-pages · bahamas10/ryb · GitHub
ここを参照してエクセルVBAに書きなおしただけ

反対にRGBからRYBに変換するのはググっても見つからない
誰か書いてくれないかなあ|д゚)チラッ
そうすれば午後の色作成でもRGBやHSLを指定した時に
RYBのスライダーと数値を変化させられるだけどなあ

イメージ 8
RGBで表現できる色でもRYBだと表現できない色はかなり多い
だったらRYBなんてコンピュータ上では必要ないじゃんって思うんだけど
なんか気になる


ダウンロード先
ファイル名:午後のパレット_20150626.xlam


Excel-DNAの導入、最初の設定メモ、VisualStudioでユーザー定義関数、エクセルアドイン

$
0
0
面白そうなのを見つけたのでメモ
Excel-DNAっていうの

VisualStudioを使って
エクセルのマクロを作ってアドインで連携
ユーザー定義関数を作ってアドインで管理
うまく表現できないけどマクロを書くのにVisualStudioを使えるようなの


参照したところは

即効!Officeを操る実用技 - [外部アプリ連携].NET FrameworkでExcelアドインを開発:ITpro

Excel-DNA | supermab's blog

この辺りの解説を見て何とか準備ができたので
その準備のメモ

イメージ 1
Excel-DNA - Home
Excel-DNAを公開している本家からダウンロード

イメージ 2
今(2015/06/27)の最新バージョンは0.32
ExcelDna-0.32.zipをダウンロードする

必要なファイルをアドインフォルダにコピーする
イメージ 3
ExcelDna-0.32.zipを解凍して
その中にあるDistributionフォルダの中にある
ExcelDna.dnaとExcelDna.xllを
エクセルのアドインフォルダにコピーする
64bit版のエクセルを使っている場合はそれぞれ64が付いているファイルで
OSが64bitでもエクセルが32bitなら無印のファイルってことかな

アドインフォルダの場所は
C:\Users\waten\AppData\Roaming\Microsoft\AddIns
watenのところはユーザー名

ユーザー名の確認は
イメージ 4
コントロールパネルからできる

イメージ 5
C:\Users\waten\AppData\Roaming\Microsoft\AddIns
AppDataフォルダは隠しフォルダになっていて見えないけど
表示設定の隠しフォルダにチェックを入れると見えるようになる


VisualStudioの準備
イメージ 6
新しいプロジェクトからクラスライブラリを選択
名前はわかりやすいのをつける
今回はExcelDnaWatenにした
OK押すと
イメージ 7
この画面

必要なファイルを参照設定する
イメージ 8
ソリューションエクスプローラーを開いて
プロジェクト名を右クリックして
追加→参照

イメージ 9
この画面で参照を押して

イメージ 10
さっき解凍したExcelDna-0.32.zipのDistributionフォルダの中にある
ExcelDna.Integration.dllを選択して追加ボタン押すと

イメージ 11
この画面に戻る、チェックが入っているの確認してOK
これで参照設定完了

参照設定したのを使いやすいようにImportsする
イメージ 12
1行目に
Imports ExcelDna.Integration
これでVisualStudioの準備ができた
イメージ 33


関数を書く
イメージ 13
Imports ExcelDna.Integration
Public Class Class1

End Class

Public Module Module1
    Function Kakezan(x, y)
        Return x * y
    End Function
End Module

Public Module Module1ってのはわかっていないコピペしただけ、おまじない
End Module、これもおまじない

Public Class Class1

End Class
これも要らなそうだけど、害がなさそうなのでそのまま

関数は
    Function Kakezan(x, y)
        Return x * y
    End Function
この3行
名前がKakezanって名前の関数にした
受け取ったxとy、2つの値を掛け算した値を返す関数

書いたらビルド…の前に
イメージ 14
構成?をDebugからReleaseに変更してから

イメージ 15
ビルド!

イメージ 16
ビルドに成功すると下にある出力画面に
1 正常終了の表示

------ ビルド開始: プロジェクト:ExcelDnaWaten, 構成:Release Any CPU ------
  ExcelDnaWaten -> c:\Users\waten\Documents\Visual Studio 2013\Projects\ExcelDnaWaten\ExcelDnaWaten\bin\Release\ExcelDnaWaten.dll
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
できあがったファイルの場所はオレンジ色のところにあるので
これをエクセルのアドインフォルダにコピーする

イメージ 17
できあがったファイル(Excelgogowaten.dll)を
アドインフォルダにコピー(移動でも同じ)する


アドインフォルダのExcelDna.dnaの中を書き換える
イメージ 18
コピーしたExcelDna.dnaをテキストエディタで開いて
2行目から19行目を
<ExternalLibrary Path="ExcelDnaWaten.dll" />
これに書き換える

ExcelDnaWaten.dll
のところはVisualStudioでビルドして作成したファイル名にする
上書き保存して閉じる

エクセルのアドインとして導入する
このへんみて
イメージ 19
アドインの名前はExceldnaになっている
この名前を変えたいときは
ExcelDna.dnaとExcelDna.xllを変えればいいみたい

チェックを入れてOKでさっき書いたKakezanの関数が使えるようになっている
イメージ 20
=kaを打った時点で候補として出てくる

イメージ 21
2つの値、もしくは数値の入ったセルをを指定して決定すると

イメージ 22
できた!

イメージ 23
ここに説明を入れるのとかもできるみたい

他にも関数を書いてみる
イメージ 24
    Function ISPRIME(x As Integer) As Boolean
        Dim i As Integer
        For i = 2 To x / 2
            If x Mod i = 0 Then
                Return False
                Exit Function
            End If
        Next
        Return True
    End Function

VisualStudioに戻って
Excel-DNA で XLL をつくる(その6) | supermab's blog
ここを参照(丸パクリ)して
受け取った値が素数かどうかの判定を返す関数を書く
ピンクの四角のところが書き加えた関数ISPRIME
書く場所はModule Module1としたところの中でいいみたい

書いたらビルドしてできあがったファイルを
アドインフォルダにコピーするんだけど
そのまま上書きしようとしてもエラーになるので

イメージ 25
エクセルのアドインの設定でExceldnaのチェックを外してOKしてから
ビルドしたファイルExcelgogowaten.dllを上書きする
上書きできたらチェックを入れる
めんどくさいけどチェックを入れている間はエクセルが
Excelgogowaten.dllを使用中ってことで上書きできないみたい

イメージ 26
コピー

イメージ 27
ファイルを置き換えるで上書きコピー

イメージ 28
再びチェックを入れてOK

イメージ 29
候補にも出てくる

イメージ 30
できたー

イメージ 31
    Function ISSOSUU(x As Integer) As String
        Dim i As Integer
        For i = 2 To x / 2
            If x Mod i = 0 Then
                Return "(´・ω・`)"
                Exit Function
            End If
        Next
        Return "٩(๑❛ᴗ❛๑)۶素数!"

    End Function

同じ素数判定の関数だけどBooleanじゃなくて文字列を返す関数

イメージ 32

渡すのが数値とかの値だけじゃなくてRangeとかセルそのものの受け渡しもできるのかしら
よくわかっていないけど動いたのでメモ

トマト3つ目を定植、スイートバジル、シオヤアブ強い、風も強い

$
0
0
今日は強風

イメージ 1
一昨日の2015/06/26も風が強かった、19時に10m/sを記録
最大瞬間風速では17m/sを超えていたので
トマトどうなっているかなあと

イメージ 2
大丈夫だった!

イメージ 3
イメージ 15
イメージ 17
最初に定植した株
今のところいい感じだと思う

イメージ 4
イメージ 16
イメージ 18
二番目に定植した株

イメージ 5
これから定植する株

イメージ 19
蕾も付いているしもういいかなと

イメージ 6
空いているプランターも余っている土もないので青い鉢に定植

イメージ 7
スポッ!

イメージ 8
この後もう少し土を追加して

イメージ 9
できた!


2015/06/28
イメージ 10
風強い、丸めてあったビニールが広がっていた

イメージ 11
丸めて重り、これならいいはず

トマトは種まきから48日目
イメージ 12
右側の最初に定植した株は葉っぱが広がっているせいで

イメージ 13
風にあおられて倒れそうになっていたので

イメージ 14
仮の支柱を立てて応急処置
一昨日の最大瞬間風速17m/s(東南東か東だった)では平気だったのに
今日の風速はどれくらいなんだろうって
見に行ったら
最大瞬間風速18.2(西北西)m/s
体感的には20m/sは越えているんだけどなあ

気象庁の情報なんだけど体感と違う事はよくあって
気象庁の言う10m/sの風の場合
東や南方向の時は体感と一致するけど
西や北方向の時は、えっ?15m/sは越えていたでしょうって思う
東や南方向の風に比べて西や北方向の風は過小評価されていると感じる
観測所の立地に問題があるんじゃないかなあって



スイートバジルは種まきから31日目
イメージ 29
ちょっと葉っぱの色が黄色いかな

イメージ 27
日陰気味なところにおいている

イメージ 28
葉っぱが硬くなりそうなのと水やりが面倒なのが理由だけど
今回はマルチをしているから水はそんなに蒸発しないから
日に当ててみようかなあ



シオヤアブ
イメージ 20
また、シオヤアブが来てた
3年くらい前からは1回も見たことなかったけど
今年は2匹目

イメージ 21
しっぽに白い毛が無いのでメスと思われる
イメージ 22
ちょうど一ヶ月前だ

イメージ 23
横から

イメージ 24
正面から

イメージ 25
改めてシオヤアブでググって
スズメバチの天敵 最強の暗殺昆虫 シオヤアブ(塩屋虻 塩谷虻) | Youtube動画 対決!野生動物ガチバトル
ここ見たらシオヤアブ強い!
高速で飛行するヤンマ系のトンボですら奇襲して捕食するとか
確かに飛んでくるときや飛んで行く時は音がしないなあ

イメージ 26
写真で見たり撮るだけならいいけど
近づかれたらヽ(`Д´)ノウワァァァン!!ってなる


トマトの支柱をたてた!

$
0
0
やっと支柱をたてた

イメージ 1
思ったよりしっかりできた
支柱は90センチと180センチそれぞれ5本しか持っていないので
こうなった

イメージ 2
真ん中の青い鉢には立てていない、迷い中
上から紐を下げて吊り下げるような方法もあるらしくて
それも面白そうだなあと

イメージ 5
台風以外なら持ちこたえると思う

イメージ 3
イメージ 4
適当にグルグルしばっただけ

イメージ 6
普通に土に刺しただけ

イメージ 7
もう少し近いほうが良かったかな

紐をぶら下げて風を視覚化
イメージ 10
体感的に風速4m/s、これくらいなら全く問題ない
気象庁の記録では東の風、風速4.5m/sだった
やっぱり東方向は体感と一致する

イメージ 8
使った支柱はイチゴの雨よけで使っていたものから持っていったので

イメージ 9
こうなった、ビニール紐もここにあったもので足りた
葉っぱだけのイチゴに雨よけは必要ないかなと
花実の付いていないイチゴには厳しいニート

最初に定植した株
イメージ 11
イメージ 12
1番目と2番めの花が咲き終わった
開花したのは2015/06/25なので約六日間咲いていたことになる

二番目に定植した株
イメージ 13
イメージ 14
こちらも2つ咲き終わって右下のは昨日の時点でしおれていて
今日は花びらも取れていた
この状態は去年とは違う!
去年はガクの部分から取れてしまっていた

去年
イメージ 17
こんなふうに咲き終わった後は花びらの部分だけじゃなくて
ガクの部分から取れてしまっていた
これはコナジラミ類が運んできたトマト黄化葉巻病の症状の1つ
去年はこの病気の存在自体知らなかったから受粉に失敗したのかと思っていた
今気づいたけど写真の左側の葉っぱにある白い点はコナジラミかも
やっぱり去年も居たんだなあ

今年に戻って
イメージ 15
落ちていた咲き終わった花

イメージ 16
花びらと雄しべの部分かな
ガクの部分は取れていないから今年は実がなるかも!
トマト(レッドオーレ)は種まきから50日目

スイートバジル、種まきから33日目
イメージ 18
イメージ 19
手がかからないからメモすることもないw
支柱も不要だしなあ、水やりも種をまいたとき以外は一回もしていない


イメージ 20
葉っぱに黒い斑点
これ自体は問題なさそうなんだけど

イメージ 21
葉っぱの裏側をかじられているみたい
ちょっと前ならアザミウマ類かなと思うんだけど
以前より注視しないせいもあるけどほとんど見かけなくなった
そんなとき

イメージ 22
なんかΣ(゚Д゚ υ) イタ!!

イメージ 23
体長2~3mm
小さすぎてよくわからないけど形からはヨコバイの仲間かな
ちょっと調べた感じでは葉っぱをかじることはしないで
アブラムシやセミみたいに吻を差し込んで汁を吸うみたい
やっぱりと言うか病気を運んでくることもあるそう
ちっちゃい虫はこんなんばっかりだなあ

イメージ 24
直接悪いことはしなさそうな雰囲気
フタモンコハマキ、トビモンコハマキ、リュウキュウトビモンハマキ、
この辺りかな、似たのがいっぱいで難しい
参照したのは
norak のらさんのタグ(ハマキガ科(Tortricidae)) - 写真共有サイト「フォト蔵」


yokonami.web.fc2.com/01yasasiiganozukan.html


午後のパレットその37、午後のツールのテキストボックス作成で文字色をある程度指定できるようにした

$
0
0
文字の色をある程度指定してテキストボックスを作成できるようにしてみた

イメージ 1
ピンクの四角のところが増やしたところ

背景色
同セル選択セルの塗りつぶしの色になる

文字色
白文字
黒文字
自動背景色が白に近ければ文字を黒文字にする、それ以外は白文字にする
同セル選択セルと同じ文字色
ランダム適当な色になる

イメージ 2
午後の道具をクリックして午後のツールを表示して

イメージ 4
背景色の指定を同セルにして適当なセルを選択した状態で
影なしを押すと

イメージ 3
セルの塗りつぶしの色を使ったテキストボックスができる

イメージ 5
文字色の指定を黒にした場合

イメージ 6
文字色を自動にすると
背景色が白に近い明るい色なら黒文字になって、それ以外は白文字

イメージ 7
同セルだと選択セルと同じ文字色

イメージ 8
ランダム文字色

イメージ 9
適当なセルの塗りつぶしの色を取得して

イメージ 10
背景色をさっき取得した色に指定、文字色は同セル指定


イメージ 11
午後のツールのPage2は見出しがない普通のテキストボックス作成用
セルを選択して
背景色と文字の色を同セルに指定して作成する(ボタン1を押す)と

イメージ 12
選択セルの塗りつぶしの色とフォントカラーと値を使った
テキストボックスができる


ダウンロード
アドインファイル名:午後のパレット_20150629.xlam


トマトの実が付いた!種まきから52日目

$
0
0
去年とは違う
トマト(レッドオーレ)種まきから52日目
イメージ 3
定植してからはどんどん大きくなるから
ポリポットのときは肥料が足りなくなっていたんだなあ
野菜前線 - タキイ種苗
ここの窒素不足のところを見たら
ポリポットの時の状態によく似ている

最初に定植した株
イメージ 1
イメージ 4
角度が良くなくて見えないけど実が付いている!

2番めに定植した株
イメージ 2
イメージ 5
こっちははっきりと実が付いているのがわかる
去年はここまで来れなかったから記録更新

葉っぱの周縁部が下側に丸まる
イメージ 12
中央より上から伸びている新し目の葉っぱの周縁部が丸まる
こういうものなのか、また何かの病気なのか生理障害なのか

イメージ 14
上から見たところ

イメージ 13
中央より下側の古い葉っぱは丸まっていない

脇芽
イメージ 6
脇芽が伸びてきたので

イメージ 7
イメージ 8
手で取り除いた
けど全部じゃなくて

イメージ 9
花が付いている下側から大きく伸びている脇芽は残した
残したというよりもったいなく思ったのと
伸ばしたらどうなるんだろうっていうの
これは最初に定植した株で
その他の二番目に定植した株と最後に定植した株は
脇芽をすべて取り除いて違いを見てみることにした


イメージ 10
種まきの日は同じだったけど成長が遅い最後に定植した株も

イメージ 11
蕾が大きくなってきた

スイートバジル、種まきから35日目
イメージ 15
イメージ 16
脇芽が伸びてくるのが早い気がする


6月の気象
イメージ 17
日別の平均気温
今年は1~2度低かったみたいだけど
体感では3~4度低く感じたなあ

イメージ 18
毎日の平均気温を累計したグラフ

イメージ 19
日照時間の累計
今年は一昨年と同じくらいで130時間
去年は185時間と結構違うけどどっちが普通なのかな

イメージ 20
降水量累計
今年は160ミリ、梅雨だからこれくらいなのかな


参照したところ
グラフタイトルにセルの内容を表示させる:Excel 一般|即効テクニック|Excel VBAを学ぶならmoug

気象庁 Japan Meteorological Agency



Viewing all 420 articles
Browse latest View live