忍者ブログ
ブログ主が仕事や個人的に学んだPC系・プログラミング系(VBAとかHTML)について書いていく備忘録ブログ。 ※ここで記載する内容はあくまで「個人的に」上手くいく内容です。ご使用には十分注意してください
[1] [2] [3] [4] [5] [6] [7] [8
Posted by - 2024.04.23,Tue
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Posted by 若槻風亜 - 2020.08.30,Sun

<ソフト名>
 シャッフルデータ
 
 
 
<機能>
 1.対象のデータを順番を入れ替えて表示する
 2.対象のデータを順番を入れ替え、グループ分けして表示する
 3.上記の結果をメモ帳、あるいはExcelで表示する
 4.上記の結果を画像で保存・表示する
 
 
<開発言語>
 VS2017-2019
 
 
<用途>
 1.データのシャッフル表示
 2.人員のシャッフル後のグループ分け
 
 以前公開した阿弥助と同じタイプの、下手すると
上位互換のソフトになります。グループ分け機能が
欲しかったけど阿弥助を修正するのは何か違うな、と
思った結果こうなりました。
 
 
<DL>
 (ベクターのサイトにジャンプします)
 
 
 (内容物)
   1.本体(ShuffleData.exe)
   2.ReadMe_シャッフルデータ.txt
 
 
 (ウィルス検査)
   済み。異常なし
 
 
 (注意1)
   動作には十分注意して作成しましたが、
   ダウンロードして使用する場合は自己責任で
   お願いします。
  
  
  
※使用方法については追記より
 

拍手[2回]

PR
Posted by 若槻風亜 - 2019.10.20,Sun

(対象)VS2017(Visual Studio/VB.NET)


ネットで探しても中々ズバリこれ、というのが
出てこなかったのでまとめてみます。

タイトル通り、VS/VBでリッチテキストボックスの
指定行に移動するソースサンプル。

実際の動作はこちらのファイルを参照


――――――――――――――――――――――――――――――――
    '■リッチテキストボックスのスクロール用
    Public Declare Function SendMessage Lib "USER32.dll" Alias "SendMessageA" (
           ByVal hWnd As System.IntPtr, ByVal Msg As Int32,
           ByVal wParam As Int32, ByRef lParam As Point) As IntPtr

    Public Declare Function SendMessage2 Lib "USER32.dll" Alias "SendMessageA" (
        ByVal hWnd As IntPtr, ByVal msg As UInteger, ByVal wParam As Integer,
        ByVal lParam As Integer) As Integer
    Public EM_GETFIRSTVISIBLELINE As UInteger = 206
    Public EM_LINEINDEX As UInteger = 0
    Public Pos As Point
    Public I As Long
    Public J As Long
    Public K As Long
    Public Dbl1 As Double

    '===========================================================
    ' 移動押下時
    '===========================================================
    Private Sub Bt_移動_Click(sender As Object, e As EventArgs) Handles Bt_移動.Click
        '■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
        ' 右端で折り返してもしなくても移動可
        ' (RT_データ.WordWrap = False/True)
        '■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
        '■テキストの中身が数字じゃない場合は処理を抜ける
        If Not IsNumeric(Text_移動先.Text) Then
            MsgBox("移動先番号は数字で入力してください", vbExclamation, "【注意】")
            Text_移動先.Select()
            Text_移動先.SelectAll()
            Exit Sub
        End If  '---入力値が数字かどうかの判断

        '■設定した数字を取得
        I = CLng(Text_移動先.Text)  '---Integerでもいい

        '■対象行があるかないかを判断
        J = RT_データ.Lines.Length
        If I > J Then _
            MsgBox("指定行が最大行よりも大きい値です", vbExclamation, "【注意】") : _
            Exit Sub

        '■行の高さを取得
        ' 参照 : https://dobon.net/vb/bbs/log3-52/30480.html
        With RT_データ
            Dbl1 = .GetPositionFromCharIndex(
                .GetFirstCharIndexFromLine(2)).Y -
                .GetPositionFromCharIndex(.GetFirstCharIndexFromLine(1)).Y
        End With

        '■対象行にジャンプ
        '  http://pineplanter.moo.jp/non-it-salaryman/2017/11/23/csharp-scroll-control/
        '  C#→VB変換 :http://www.carlosag.net/Tools/CodeTranslator/
        ' 変数の対応表:http://www.webtropy.com/articles/dll-api.aspx?dll=crypt32
        Pos = New Point(0, CInt((I - 1) * Dbl1))
        SendMessage(RT_データ.Handle, 1246, 0, Pos)

        '■対象行を選択
        '  https://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8248&forum=7
        '-----先頭行を取得
        J = SendMessage2(RT_データ.Handle, EM_GETFIRSTVISIBLELINE, 0, CInt((I - 1) * Dbl1))
        '-----対象行を選択
        K = 0
        For cnt = 0 To J - 1
            K += Len(RT_データ.Lines(cnt).ToString)  '---指定行の文字列を取得
            K += 1  '---改行分を追加で加算
            'Debug.Print("K:String = " & K & ":" & RT1.Lines(cnt).ToString)
        Next
        RT_データ.SelectionStart = K
        RT_データ.Select()
    End Sub
――――――――――――――――――――――――――――――――

VS2017と2019でしか試してませんが、
恐らくVBの方でも使用可能かと。


拍手[0回]

Posted by 若槻風亜 - 2018.01.26,Fri
<ソフト名>
 枠々メーカー
 
 
<機能>
 1.指定サイズ・個数・色で枠を作成する
 2.作成した枠を画像として保存する
 
 
<開発言語>
 VB2010
 
 
<用途>
 1.枠画像の作成
 
 たまに4コマとかもうちょっとコマ数の多い漫画を
 描いている時いちいち枠を作るのが面倒だったので
 作成しました。縦割りコマの漫画を描いている人には
 役立つと信じたい。
 
 
<DL>
 (ベクターのサイトにジャンプします)
 
 (内容物)
   1.本体(WakuWakuMaker.exe)
   2.ReadMe_枠々メーカー.txt
 
 
 (ウィルス検査)
   済み。異常なし
 
 
 (注意1)
   動作には十分注意して作成しましたが、
   ダウンロードして使用する場合は自己責任で
   お願いします。
  
  
  
※使用方法については追記より
 
 

拍手[1回]

Posted by 若槻風亜 - 2017.11.13,Mon
■フリーソフト■


<ソフト名>
 テキスト★カウントダウン

以前このブログ上で公開した「テキスト
カウントダウン」をVer1.1ということで
ベクターさんの方で公開いたしました。


ベクターさんサイト


<変更点>
1.設定値が消した後でも残るように修正
 (ただし保存タイプの上書きは保存後に
  反映される)
2.テキスト箇所の幅が広がるように修正
3.現在のファイル名を追加(保存後のみ)
4.変更チェックを追加(未保存時に
  消そうとしたら確認メッセージ表示)



何かおかしな点等ございましたら
ご連絡ください。可能な限り対応いたします。


拍手[0回]

Posted by 若槻風亜 - 2017.08.27,Sun

(対象)Excel VBA
(確認)Excel2010、2013


今回はExcelのフォーム上に配置したコントロールを
変数に格納して使用する方法です。


(手順)
1.変数を準備。この時、使用するのはただの
  「TextBox」などではなく、「MSForms.」と
  頭についているものにする

  → 例)Dim FText As MSForms.TextBox
      ↑フォーム上のテキストボックス


2.「Set」を使用して変数に格納

  → 例)For CNT = 1 To 5
             Set FText = Me.Controls("Text_テキスト" & CNT)
             FText.Text = ""
        Next


(実際の使用例)
 オープン時  : 中身を削除
 ボタン押下時 : コントロールの名前を格納

 ↓ ソース
 
 Dim FText As MSForms.TextBox
 
 
 Private Sub UserForm_Initialize()
     '■初期化
     For CNT = 1 To 5
         Set FText = Me.Controls("Text_テキスト" & CNT)
         FText.Text = ""
     Next
 End Sub
 
 Private Sub Bt_表示_Click()
     '■順次コントロール名を格納
     For CNT = 1 To 5
         Set FText = Me.Controls("Text_テキスト" & CNT)
         FText.Text = FText.Name
     Next
 End Sub





同じようなコントロールがいくつも出てくるとき
などに非常に便利です。


シート上のコントロールに入れる方法は割とすぐに
見つかりましたが、こっちの「MSForms」は中々
出てこなくて最初ちょっと困りました。

拍手[0回]

プロフィール
HN:
若槻風亜
性別:
女性
職業:
会社員
趣味:
創作、プログラミング
自己紹介:
仕事や個人で学んだことをまとめておきたかったがために備忘録ブログを立ち上げました。
あくまで自分が学んだこと・自分が出来たことなので、ご覧くださる場合は参照レベルでお願いします。
ブログ内検索
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
P R
最新トラックバック
コガネモチ
フリーエリア



Template by mavericyard*
Powered by "Samurai Factory"
忍者ブログ [PR]