トレーニングでMS Excelを使用するというアイデアは、かなり前に生まれました。 VBAプログラミングに関する同様のトピックを持つフォーラムで、マクロは全能であるという言及に出くわします。 そうですか?
警告
この記事は役に立たず、面白くなく、うんざりし、ビル自身を含む惑星地球の住民の99.9999999%以上、および教育機関のほとんどの教師にとって理解不能です。
問題の声明
ご存知のように、ボローニャのプロセスはロシアの母校に沿って飛躍的に進みます。 また、多くの人がすでに知識評価のポイント評価システム(BRS)( http://study.engr.pfu.edu.ru/ )に切り替えています。 また、これは教師に追加の労働義務を課します。学業成績を追跡し、インターネット上でデータを絶えず公開することです。
さらに、前者はBRSの前に存在していましたが、後者は、各被験者について大量のデータを絶えず採点し、綿密に導入する必要があります。 そして、この分野では、60人が簡単に複数のストリームがある場合があります。 つまり、毎月平均100件のエントリが各従業員によってインターネットに登録されます。 さまざまな方法で、すべての人にとってこの「喜び」が必要です。 たとえば、チェックするのに約1時間半あります。 そして、これは機関だけではありません。 学校では、子供たちの成績をオンラインで知る傾向も見られます。 もちろん、これはいかなる形でも支払われません。 このプロセスを自動化してみましょう。
Excelが助けになります
ビル、彼らはあなたを愛していませんが、ハッキングされたバージョンのWindowsとOfficeを使用している先生から、ロシア人に感謝します!
写真からわかるように、各生徒はランキングカードのセルで自分の場所を見つけることができます。 この場合、式によるマクロがなくても、獲得したポイントは自動的に計算されます。
この混乱をすべてサイトに公開するコードを書くことは残っています。 目標を達成するための方法を簡単に教えてください。
公開するには、最初に宛先ページのhtmlコードをパークし、このフィールドまたはその学生がどのフィールドにいるのかを判断する必要があります。
HTMLを入手
Function JabberGET(ByVal Urlka As String) As String
Dim objHTTP As Object
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
objHTTP.Open "GET", Urlka, False
objHTTP.setRequestHeader "Accept", "text/html"
objHTTP.setRequestHeader "Accept-Language", "ru-ru,ru"
objHTTP.setRequestHeader "Accept-Encoding", "gzip,deflate"
objHTTP.setRequestHeader "Accept-Charset", "windows-1251"
objHTTP.setRequestHeader "Keep-Alive", "115"
objHTTP.setRequestHeader "Connection", "keep-alive"
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send Empty
Debug.Print objHTTP.responseText
JabberGET = objHTTP.responseText
End Function
解析は正規表現によって実行されます。
Dim RegEx As RegExp, RegMatch As MatchCollection
Dim myMatch As Match
Set RegEx = New RegExp
'String to parse
With RegEx
.MultiLine = True
.IgnoreCase = True
.Global = True
End With
RegEx.Pattern = "discipline_id..value=.\d{3,4}.|\s>\s.*<..>"
Set RegMatch = RegEx.Execute(MyStr)
If RegMatch.Count > 0 Then
For Each myMatch In RegMatch
Next
End If
次に、必要なフォームの[次へ]ボタンにInternet Explorerと以下を引き裂くコードを記述します。
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
Application.DisplayAlerts = False
url = "http://study.engr.pfu.edu.ru/index.php"
IE.Navigate "http://study.engr.pfu.edu.ru/tutor/logout.php"
While IE.Busy: DoEvents: Wend 'wait until IE is done loading page.
IE.Navigate url
Do Until IE.ReadyState = READYSTATE_COMPLETE: Loop
While IE.Busy: DoEvents: Wend 'wait until IE is done loading page.
IE.Visible = True
'ie is now done loading the page
IE.Document.all("valid_tutor_login").Value = getpass(0)
IE.Document.all("valid_tutor_password").Value = getpass(1)
Call ckickBtn("", IE)
While IE.Busy: DoEvents: Wend 'wait until IE is done loading page.
SubjCod = CoursGroupNumber(2, GroupNum)
For Each btn In IE.Document.all.tags("Input")
X = btn.Value
If btn.Value = SubjCod Or btn.Value = CourseNum Then
Call btn.Click
End If
Next btn
Call ckickBtn(">>", IE)
次の機能を持つボタンをクリックします。
Function ckickBtn(btm As String, IE As InternetExplorer)
For Each btn In IE.Document.all.tags("Input")
X = btn.Value
If btn.Value = btm Then
Call btn.Click
End If
Next btn
While IE.Busy: DoEvents: Wend 'wait until IE is done loading page.
Do Until IE.ReadyState = READYSTATE_COMPLETE: Loop 'Loop unitl ie page is fully loaded
End Function
フォームが開いており、解析段階で受け取ったフィールドに従って、データがサイトに自動的に入力されます。 シンプルで上品。
まとめ
マクロを使用して実現された機能をリストします。
•自動学生採点
•工学部のWebサイトでのポイントの自動公開http://study.engr.pfu.edu.ru/
•次の学期の学生リストを更新した新しいワークシートを作成する
•件名とスケジュールに従って新しいリストのテンプレートを維持する
•ポイントを含むいくつかの基準による学生の迅速なフィルタリング
•作成者に質問する機能(サポートとの対応)
•プログラムは常に工学部のウェブサイト上の最新の変更で最新であり、それ自体が学生と科目のリストを更新します
•工学部のすべての教師の平均スコアの統計、アカウント認証を考慮して、なし
•工学部のすべてのコースの平均スコアの統計、認証を考慮して、およびなし
追加のモジュールをインストールすることなく、すべてのExcelユーザーが上記のすべてを利用できることに注意してください。 プログラムは* .xlsではなく、* .exeファイルとして起動します。これにより、マシン上で無効になっているマクロを操作でき、さらにバックアップが自動的に作成されます。
そして最後に、ブロック図
PS
Excelからサイトにポイントをすばやく入力する方法は?
次の学期の学生のリストをすばやく作成する方法は?